Difference between revisions of "ROS Tutorials"

From Lofaro Lab Wiki
Jump to: navigation, search
(Using rqt_consol and roslaunch)
(Beginner Level)
Line 16: Line 16:
 
# [[Understanding ROS Topics]]
 
# [[Understanding ROS Topics]]
 
# [[Understanding ROS Services and Parameters]]
 
# [[Understanding ROS Services and Parameters]]
 
+
# [[Using rqt_consol and roslaunch]]
[[Using rqt_consol and roslaunch]]
+
  
 
==Using rosed to Edit Files in ROS==
 
==Using rosed to Edit Files in ROS==

Revision as of 18:31, 17 October 2014

Practicing writing a wiki page- all information below is incomplete until otherwise noted.

Aside to editor, to improve:

This tutorial assumes that you will be working in ROS-hydro on Ubuntu 12.04. This wiki is based on the tutorials given here.

Beginner Level

Open the terminal. To complete each step, type in the following commands in the order shown.

  1. Installing and configuring your ROS environment
  2. Navigating the ROS Filesystem
  3. Creating a ROS Package
  4. Building a ROS Package
  5. Understanding ROS Nodes
  6. Understanding ROS Topics
  7. Understanding ROS Services and Parameters
  8. Using rqt_consol and roslaunch

Using rosed to Edit Files in ROS

1) Close all current terminals. In a new terminal, edit your bash file to use nano (an editor):

  export EDITOR='nano -w'

Use

  echo $EDITOR

And see a line print to the terminal to make sure the bash file change was successful.

2) Use rosed [package_name] [filename] to edit a file within a package:

  rosed roscpp Logger.msg

This works similarly to other editors in a terminal. If running into trouble, try gedit.

Creating a ROS msg and srv

  • msg: msg files are simple text files that describe the fields of a ROS message. They are used to generate source code for messages in different languages.
  • srv: an srv file describes a service. It is composed of two parts: a request and a response.

Creating a msg

1) Move into the beginner_tutorials folder, create a msg directory, and create a new msg file:

  cd ~/catkin_ws/src/beginner_tutorials
   mkdir msg
   echo "int64 num" > msg/Num.msg

1b) Use rosmsg show [message type] to make sure ROS sees the new msg:

  rosmsg show beginner_tutorials/Num

Or

  rosmsg show Num

The message int64 num will display. The second option is if you do not have the name of the package. If int64 num does not display, see step 6b in Using rqt_console and roslaunch and try again.

Creating a srv 1) Move into your beginner_tutorials folder and create a src folder:

  roscd beginner_tutorials
   mkdir srv

2) Use roscp [package_name] [file_to_copy_path] [copy_path] to copy files from one folder to another:

  roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv

This will copy a premade srv file into the srv folder.

2b) Use rossrv show <service type> to make sure ROS sees the new srv:

  rossrv show beginner_tutorials/AddTwoInts

The message with two int64 a and b will show, then a '---' line, followed by an int64 sum.

Farther Notes

1) Once you have made the msg and srv, you will need to rebuild the package:

  rosmake beginner_tutorials

Writing a Simple Publisher and Subscriber (C++)

Writing the Publisher Node

1) In a terminal, move to your beginner_tutorials folder:

  cd ~/catkin_ws/src/beginner_tutorials 

2) Create the file talker.cpp:

  gedit src/talker.cpp

3) In the gedit editor, paste all from this link. Save the file and close the editor. For information on what is inside this file, see this link. In a nutshell, it initializes the ROS system, advertise what we are doing, and finally loop what we are doing.

Writing the Subscriber Node

1) In a terminal, move to your beginner_tutorials folder:

  cd ~/catkin_ws/src/beginner_tutorials 

2) Create the file listener.cpp:

  gedit src/listener.cpp

3) In the gedit editor, paste all from this link. Save the file and close the editor. For information on what is inside this file, see this link. In a nutshell, it initializes the ROS system, subscribes to the topic 'chatter', spin (wait for messages), when message arrives call the chatterCallback() function.

Building Nodes

Writing a Simple Publisher and Subscriber (Python)

Examining the Simple Publisher and Subscriber

Writing a Simpler Service and Client (C++)

Writing a Simpler Service and Client (Python)

Examining the Simpler Service and Client

Recording and Playing Back Data

Getting Started with roswtf

Navigating the ROS wiki

Where Next?

Intermediate Level