-
Notifications
You must be signed in to change notification settings - Fork 23
Home
#TASKS
- Lane-Detection
- Flag-Detection
- Navigation
- JAUS
- Your camera must be calibrated with a checkerboard pattern first. Make sure you use the correct settings. This will produce a yaml calibration file, which you must place in the folder
line_detection/misc/calibration_data/
, named asaptina_960.yaml
for now. - Now, figure out what ROI (region of interest) settings you will have, and set the values in the
roi.yaml
file that's in the line_detection folder. - Run the
pixel_to_coordinate_calculator
node, which should write all the coordinates of each pixel (only within ROI) to a file atline_detection/misc/training_images/pixel_coordinates.npy
. This file will be read by the final stage in line_detection, when we want to create a pointcloud for every line image. - Make sure the pointgrey camera driver has
packet_size
1400 andpacket_delay
0.
- Install ROS Hydro. We are currently porting over to Indigo, only thing that is keeping us from being completely on Indigo is some Gazebo ROS plugins. Should be 100% ported by November.
Open up terminal
Type these things:
cd ~
mkdir -p edt/igvc_ws/
Then go to github, and log in onto your account.
Fork this repo, which will basically make your own personal copy to mess around with
Copy the URL for YOUR forked repo, not the master EDT repo
Go back to terminal and type
git clone [enter the URL here] src
cd src
rm -rf camera1394stereo
rm -rf sick_tim3xx
rm -rf gps_goal
rm -rf simple_navigation_goals
cd ..
catkin_make
sudo apt-get install ros-indigo-sick-tim
Then go to this website: https://github.com/uos/sick_tim
Change the branch to the indigo
On the right hand side there will be a option to "Download zip"
If it doesnt ask you where to save, then it already just saved it to your Downloads folder on your computer. If it asks you, install it to your downloads lol
Open up your file browser and go to your Downloads folder
Double click on the sick_tim-indigo.zip
It will open up a extractor, and then go into that folder, and single click on the udev
folder, and then click extract
Go to terminal and type:
cd ~/Downloads/udev
ls -l
gedit README.txt
Or whatever its called
Then just read what they tell you to do
After that, type:
roslaunch sick_tim sick_tim551
(auto-tab to get the full name)
The sicktim laser should now be running.
To view the data, open rViz
rosrun rviz rviz
Then in the top left corner, there will be a option for "Global Frame". Click the drop down and select "laser"
Then in the bottom left corner, there is a "add" button. Select the "LaserScan" type and click add.
Then make dropdown the LaserScan item you just added, and set the "topic" parameter (it should be /scan )
You should feel cool now
-
Go to wherever your catkin workspace is
- Example: My catkin workspace is located in
~/edt/scipio_ws/
(You don't have to specifically name it "catkin_ws". I will be calling it "scipio_ws".- So i type
cd ~/edt/scipio_ws/src
- So i type
- Example: My catkin workspace is located in
-
Go to github and Fork the [Repo](https://github.com/chicagoedt/Software_IGVC/).
-
git clone **YOUR FORKED REPO URL**
<-- Make sure that is in your catkin_ws/src/ folder- For example my forked repo URL would be
https://github.com/l0g1x/Software_IGVC.git
- For example my forked repo URL would be
-
cd ..
So now you should be inedt/scipio_ws/
-
Type
catkin_make
to compile all of the code -
Make some changes (refer to the "Development Workflow" section below)
-
Recompile your changes (
catkin_make
in the scipio_ws/ folder) -
commit changes (refer to the "Development Workflow" section below)
-
push to YOUR forked repository (refer to the "Development Workflow" section below to know which branch you should push to at what point in time)
-
Create a pull request for code review
Here will be explained how to go about making changes to Scipio's code; when you should be on the simulation branch vs. when you should be on the development. You probably won't ever be on the master branch.
Never work directly straight off the main Software_IGVC repo. Any changes should ALWAYS be made on your forked repo of the main Software_IGVC repo.
This is where everybody should ALWAYS start to write any of their new code. Say for example you wanted to write a driver for v3000 Rocket Booster that would make Scipio finish the course in under -52.3 seconds (yes negative); you would first start by switching to the simulation
branch.
When you are on the simulation branch, there should be no code related to real-world scipio (i.e roboteq_driver, nmea_navsat_driver, etc.) written/added there. This branch is PURELY for base-concepts like configuring the nav-stack, etc.
Once you get your node/package to work in gazebo, merge (not pull request) your changes into YOUR development branch. Be sure to ONLY merge your node related stuff; so that means DO NOT MERGE ANY SIMULATION RELATED STUFF into the development branch.
-
How do you test your code?
- You will be using the gazebo simulation model for Scipio, which is already configured with all the same sensors as the real life Scipio.
-
Okay so then how do I use this simulated Scipio model?
- Refer to the "How to run/use Scipio in Gazebo"
Once you have a steady working node in Gazebo, merge the code to your development branch (like described above), and try to test out your code on your own computer (yes, put your computer into the Scipio drawer, and plug in all the USB cables, thats of course if you can).
- Excuse me sir, we need to buy new sensors because these don't want to work with my computer; i think they are broken.
- I can assure you the sensors are fine, its probably just a driver issue/kernel module thats missing or broken on your computer. But if you can't fix it, submit a pull request with the simulation code you have and the team will look over it, give you feedback so you can fix some things, and then you can test your code on the computer inside of Scipio (ARM board, laptop, whatever..)
So once you have merged your changes into the development branch from the simulation branch, you will now basically be testing to see how your package/node reacts in a Real-World environment, not just a near-perfect simulated world. This is where you actually will need to have the entire Scipio up and running (or at least whatever sensors/nodes/etc that you need).
---> There should be no simulation-related things in this branch. <---
Things to do while on development branch
- ??
- ??