Ask Your Question
0

Navigation with Clearpath Husky

asked 2016-05-19 20:52:38 -0500

tercelkisor gravatar image

updated 2016-05-20 12:47:34 -0500

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.

edit retag flag offensive close merge delete

Comments

1

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.

Icehawk101 gravatar imageIcehawk101 ( 2016-05-24 07:44:08 -0500 )edit

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.

tercelkisor gravatar imagetercelkisor ( 2016-05-24 13:21:15 -0500 )edit

I hate server. Everything is easier with a visual display :P

Icehawk101 gravatar imageIcehawk101 ( 2016-05-24 14:07:41 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-05-20 11:13:40 -0500

updated 2016-05-24 07:41:07 -0500

OK, let's see. To start with 1 and 3 are completely overlapping. You use a launch file to start multiple nodes at the same time.

To set up the catkin workspace follow this tutorial

What nav demo are you using? There is one specifically for the husky here. You may need to change the ROS distro though (this is for indigo, I don't know what version you are using).

Once you have that working you can write your own node to send a goal to the move_base action server in order to get it to navigate to a specified point.

[EDIT]

To run a physical Husky, in a terminal window run roslaunch husky_base base.launch. You should also take a look at the husky_bringup package. It has launch files for optional hardware on the Husky such as the CH Robotics UM6 IMU and LMS100 laser range finder.

edit flag offensive delete link more

Comments

can the parameter arguments just be listed in any order? The wording is what is confusing me.

tercelkisor gravatar imagetercelkisor ( 2016-05-20 15:32:16 -0500 )edit

Yeah, you can list the params in any order

Icehawk101 gravatar imageIcehawk101 ( 2016-05-24 07:18:25 -0500 )edit

I'll give it another shot. If the husky_bringup already has the gps and imu as dependencies, could I just include that package to cover the move_base, gps, and imu all in one? I think I read that on the navigation tutorial.

tercelkisor gravatar imagetercelkisor ( 2016-05-24 13:14:24 -0500 )edit

I' know that that is how you start the physical husky. I don't know how to make the physical husky work from the navigation stack tutorial.

tercelkisor gravatar imagetercelkisor ( 2016-05-24 13:25:42 -0500 )edit

It's like I said earlier. It's not that simple stuff that I have an issue with. I guess I don't see how any of the tutorials are helpful for the navigation stack. It seems like there is some other knowledge that isn't covered in the tutorials.

tercelkisor gravatar imagetercelkisor ( 2016-05-24 13:27:01 -0500 )edit

The tutorials do leave a lot to be desired. Have you looked at the tutorials for sending simple goals to the navigation stack?

Icehawk101 gravatar imageIcehawk101 ( 2016-05-24 14:09:55 -0500 )edit

Also, pay attention to what each node is subscribing and publishing too. move_base publishes on /cmd_vel, but husky_base subscribes to /husky_velocity_controller/cmd_vel. You may need to remap some topics

Icehawk101 gravatar imageIcehawk101 ( 2016-05-24 14:11:12 -0500 )edit

I have looked at sending simple goals, but I haven't tried anything since I don't even have the navigation stack running.

tercelkisor gravatar imagetercelkisor ( 2016-05-24 14:27:29 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2016-05-19 20:52:38 -0500

Seen: 557 times

Last updated: May 24 '16