MRC/Using Pico: Difference between revisions
Line 3: | Line 3: | ||
# Power on the robot | # Power on the robot | ||
#* For Pico, the on-off switch is on the bottom, next to the emergency button. This also starts the on-board computer | #* For Pico, the on-off switch is on the bottom, next to the emergency button. This also starts the on-board computer | ||
<!-- | |||
#* For Taco, the on-off switch is on the outer edge of the base. Also start the laptop, if it is not already on (you don't need to log in). | #* For Taco, the on-off switch is on the outer edge of the base. Also start the laptop, if it is not already on (you don't need to log in). | ||
--> | |||
# Now plug in the laptop you want to use (one of your group members' laptops) to the given UTP cable and make sure it is connected using this wired network connection. | # Now plug in the laptop you want to use (one of your group members' laptops) to the given UTP cable and make sure it is connected using this wired network connection. | ||
# '''From here on, you should work on your laptop.''' Open a terminal and type <pre>ssh<robot name></pre> where <robot name> is either pico or taco, depending on which robot you want to use. Using this command, you login on the robot's computer; the password is again '''emc'''. | # '''From here on, you should work on your laptop.''' Open a terminal and type <pre>ssh<robot name></pre> where <robot name> is either pico or taco, depending on which robot you want to use. Using this command, you login on the robot's computer; the password is again '''emc'''. | ||
# Now that you are in, you can start all the necessary nodes on the robot. These controllers and drivers let your software communicate with the hardware. On the robot (so in the terminal you opened in the previous step) enter | # Now that you are in, you can start all the necessary nodes on the robot. These controllers and drivers let your software communicate with the hardware. On the robot (so in the terminal you opened in the previous step) enter | ||
#* For Pico: <pre>pstart</pre> | #* For Pico: <pre>pstart</pre> | ||
<!-- | |||
#* For Taco: <pre>tstart</pre> | #* For Taco: <pre>tstart</pre> | ||
--> | |||
# '''N.B. leave this terminal open! ''' | # '''N.B. leave this terminal open! ''' | ||
Revision as of 15:49, 6 May 2015
Starting Pico
To start Pico or Taco please follow the following steps:
- Power on the robot
- For Pico, the on-off switch is on the bottom, next to the emergency button. This also starts the on-board computer
- Now plug in the laptop you want to use (one of your group members' laptops) to the given UTP cable and make sure it is connected using this wired network connection.
- From here on, you should work on your laptop. Open a terminal and type
ssh<robot name>
where <robot name> is either pico or taco, depending on which robot you want to use. Using this command, you login on the robot's computer; the password is again emc. - Now that you are in, you can start all the necessary nodes on the robot. These controllers and drivers let your software communicate with the hardware. On the robot (so in the terminal you opened in the previous step) enter
- For Pico:
pstart
- For Pico:
- N.B. leave this terminal open!
Running your software
Pico/Taco is now up and running. To run your own software follow these steps:
- Open a new terminal and login to your robot again:
ssh<robot name>
with password emc. - Go to your group's folder:
cd ~/emc/emc<group number>
- The rest works the same as on your own PC.
- The first time, you will have to clone your git project on the robot's computer:
git clone http://roboticssrv.wtb.tue.nl:8800/emc<group number>/my_project.git
Of course with your own group number, project name etc. Just like you did on the PCs of the group members. - Any next time you can just navigate to your group's folder and
git pull
- Now that your own software is up to date, you can compile it and run it, again just like you would on your own laptop.
- The first time, you will have to clone your git project on the robot's computer:
Visualization
When you want to visualize the robot while testing, you can do the following
- Open a new terminal and type
<robot name>-core
This makes sure that any software you run in this terminal listens to the ros-master on your robot. - So if you now run our visualization software by entering
emc-viz
it will subscribe to the topics published on the robot.
Recording data
A simulator simulates a perfect world, so if your software works in the simulator, it is not (at all) guaranteed to work in the real world. But because you only have limited testing time on the robots, it would be nice if you could somehow simulate being in the real world. Luckily, the developers of ROS also ran into this, so they create rosbag. Using rosbag you can record data published by the robot and play it later when you want to test an awesome new feature of your software using real sensor data, or if you just want to inspect the quality of the sensor data, etc.
- The first step is again to open a terminal and log in to the robot
ssh<robot name>
- Find the topics you would like to record (usually those will be the ones containing data from the LRF and the odometry) by using
rostopic list
- You can now use the rosbag tool to record the topics you like:
rosbag record topic_1 topic_2
Topic_1 and topic_2 should of course be changed to the correct topic names, but you can also add more topics to this command. While recording, you should leave this terminal open, and if you think you have enough data, you can stop recording by pressing ctrl+C. If you would like to record all topics (not recommended, as this means recording a lot of unnecessary data), you could use the option -a instead of typing in all of the topic names. - The bag file you just recorded is now in the current directory, so if you enter
ls
you can see it among the other files in the current directory. This should be the home directory (if you did not cd to somewhere else). You can now copy this file over the network to your own laptop by opening a new terminal (or just log out of the robot by pressing ctrl+D), navigating to the directory where you want to place your new bag file, and enteringscp emc@<robot_name>:~/<filename> <filename>
What this command does is the following: it securely copies (scp) from the emc account at the robot's computer the file given by the path after the colon and it places it in your current directory with the second file name. - After you have copied your bag files to your own PC, clean up the robot's PC by removing your bag file(s):
rm <filename>
This permanently removes the file from the robot's file system, so if you want to keep it, make sure you only do this after copying it to your own PC!
Playing back bag files
Now you can play this bag file as often as you like and have your software analyse the sensor data. To do that, take the following steps:
- First start a roscore, like you always do
- Now, because you want your node(s) to use the time that was recorded in the bag file instead of the current system time, you will have to tell it to do that. You can do that by setting the ROS parameter use_sim_time to true:
rosparam set use_sim_time true
- If all is well, you should now be able to play the bag file by entering
rosbag play --clock <filename>