In this tutorial we will make basic tests to assert that both the robulab robot and the laptop are configured correctly. We will consider as well configured if we can start a PhaROS node that handle robulab robot, so we can publish motion messages through rostopic pub
command and make it to move.
Setup
- Robulab charged and switched on.
- Laptop with Ubuntu 14.04
- ROS Indigo installed on laptop (Read: How to install ROS Indigo in Ubuntu 14.04)
-
Your
.bashrc
file you should look like this:source /opt/ros/indigo/setup.bash source ~/PhaROS-ws/devel/setup.bash ROS_HOSTNAME=localhost ROS_MASTER_URI=http://localhost:11311
-
PhaROS installed (Read: How to Install PhaROS).
-
Robot should be unplugged and free to move.
Ok, lets test it
-
Create a package for testing the robulab. In a terminal run (this could take a couple of minutes):
$ pharos create testrobulab
-
Open the Pharo image of your PhaROS package by running this:
$ rosrun testrobulab edit
-
Install the required software to controll Robulab by executing this script.
Gofer it smalltalkhubUser: 'CAR' project: 'Robulab'; configurationOf: 'PureROS'; load. ((Smalltalk at: #ConfigurationOfPureROS) project version: #bleedingEdge) load: {'kompai'}.
-
Connect your laptop to UBNT wireless network.
-
Start ROS by running
roscore
in a terminal.$ roscore
If everything goes fine it should print something like this:
... started roslaunch server http://achao:56856/ ros_comm version 1.11.3 SUMMARY ======== PARAMETERS * /rosdistro: <...> * /rosversion: <...> NODES auto-starting new master process[master]: started with pid [4073] ROS_MASTER_URI=http://achao:11311/ setting /run_id to 6e36ef46-005d-11e4-ac41-b8ee65bb26b0 process[rosout-1]: started with pid [4086] started core service [/rosout]
Where
achao
is the hostname of the laptop I am using. -
Be sure that the Pharo image has not http proxy set, or if it has, they are coherent with your network configuration. To deactivate it you can just execute this in a workspace:
NetworkSystemSettings useHTTPProxy: false
-
Open a workspace and execute:
PureROSKompai new scriptKompai1
change it to
scriptKompai2
if you are using Robulab2. This will create a PhaROS node that you can check by executing:$ rosnode list
and you would see
/PharoHandle-1404143614 /rosout
-
Let’s check the available topics to publish, in a terminal execute:
$ rostopic list
and the list of topics should be:
/command_velocity /initialpose /kompai/scan /kompai2/pose /kompai2/trajectory/differential /orientation /rosout /rosout_agg
-
Let’s publish some motion message in
/command_velocity
. For that lets use the command pub forrostopic
which has the following structure:rostopic pub <topic id> <topic type> <message>
command. Press [TAB] key to autocomplete: topic id, topic type and get message template.$ rostopic pub /command_velocity geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.5"
And the robot will start to rotate. If so you are done :)
Pingback: Getting laser and odometry information from Robulab robot « CAR: Components, Agents, and Robots
Pingback: Robulab’s first lesson of LRP through PhaROS « CAR: Components, Agents, and Robots