Navigation with Clearpath Husky
Hello all,
I am currently working on getting a Husky to navigate to GPS coordinates. I was able to do a simple version by writing a simple script that subscribes to GPS and magnetometer data and publishes velocity commands. Now I need to take advantage of the navigation stack to implement obstacle avoidance and more robust navigation, but I'm honestly at a loss. I have read through the navigation tutorial, and they lose me when they say:
catkin_create_pkg my_robot_name_2dnav move_base my_tf_configuration_dep my_odom_configuration_dep my_sensor_configuration_dep
I understand conceptually what it means. I just don't know what to put there. The same goes for making the launch file. Currently the husky publishes these topics:
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/gps/fix
/gps/nmea_sentence
/gps/nmea_sentence_out
/gps/time_reference
/gps/vel
/imu/data
/imu/data_raw
/imu/mag
/imu_filter/parameter_descriptions
/imu_filter/parameter_updates
/imu_manager/bond
/imu_um6/data
/imu_um6/mag
/imu_um6/rpy
/imu_um6/temperature
/joy_teleop/cmd_vel
/joy_teleop/joy
/odometry/filtered
/odometry/gps
/rosout
/rosout_agg
/status
/tf
/tf_static
I have attached a Hokuyo UG01 laser to it, and it publishes a topic called /scan which I am able to subscribe to with a simple python script.
From my current understanding, I need to :
1. Get the laser node to launch with the other nodes on startup
2. Create the catkin workspace with all the correct dependencies (very lost on that one)
3. Create launch files for the required nodes. (Maybe 1 and 3 are overlapping?)
4. ??? Maybe do something with tf?
That's where my understanding breaks down, I think.
I would greatly appreciate any help on this. It's due in three weeks and I am stressing out.
To give a bigger picture, the ultimate goal of the project is to have the husky navigate to GPS coordinates, then, at that location, read a color sequence using open cv or something similar (haven't done too much with that part yet), then travel to colored cones in the order of the color sequence that was read. For example, the lights flash red, green, blue, and the husky finds the red cone, travels to it, then the green, and so on. Thanks again for the help.
EDIT:
Hi Icehawk. Thanks for the response. I have a few more questions. How would I go about adapting this demo for use on a real husky? I've been through the catkin tutorials, and basically understand how to create a workspace, but the format, naming, and choice of dependencies is what I don't get. I'm running indigo, so that's good, but the computer on the husky only has a terminal output, so I couldn't use rviz. I've tried running it from the remote pc that I ssh into the husky from, but I've had no luck with that. It seems like the tutorials are really good at teaching you to run demos or creating very simple nodes and whatnot, but it's not very helpful when doing things more complicated than basic publishers and subscribers. Thanks again.
What do you mean it only has terminal output?
Try taking a look at the tutorial for running ROS over multiple machines. http://wiki.ros.org/ROS/Tutorials/Mul... . This will allow you to use the machine tag to tell ROS where to run certain nodes in a single launch file.
I mean that it has no GUI. It is the server version of ubuntu, i guess. I already can do what that tutorial teaches. I can sub and pub from with computer. I can even run rviz, but I guess I am doing something else wrong.
I hate server. Everything is easier with a visual display :P