Skip to content
GreatAlexander edited this page Dec 10, 2014 · 28 revisions

External Robocup-at-work wiki pages, with LOTS of relevant information

https://github.com/oscar-lima/wikis

MAS-Group Robocup at work code

https://github.com/mas-group

Outdated (ROS Fuerte) Youbot ROS packages

https://github.com/youbot/youbot-ros-pkg

YouBot Groovy Setup

Sudo password is youbot

  • Groovy Installation ros-desktop (On-line tutorial) Ubuntu 12.04 Precise

  • Once installation completes, cd /etc/ssh, then: sudo ssh-keygen -f rsa ssh_host_rsa_key -C "youbot" sudo ssh-keygen -f dsa ssh_host_dsa_key -C "youbot" sudo ssh-keygen -f ecdsa ssh_host_ecdsa_key -C "youbot"

  • Pinging between youbot and PC is now functioning (Using proper ip adresses)

  • Edit /etc/hosts and add each pc/robots connected in the network (Check ips as they may change) Format: ip <user_name>

  • export ROS_MASTER_URI=http://<master_host_ip>:11311 (For ALL clients/server)

  • export ROS_HOSTNAME=<master_host_ip> (For server only, if problem in running roscore and launch, export rosip)

  • sudo apt-get install ros-groovy-youbot-oodl ros-groovy-navigation ros-groovy-laser-drivers

  • Before launching youbot_oodl, write: export YOUBOT_CONFIG_FOLDER_LOCATION=/opt/ros/groovy/etc/youbot_driver/config/ (in the bash file)

  • Now it can be tested with rostopic pub ... (velocities using geometry twist message)

YouBot Hydro Setup

From http://www.youbot-store.com/youbot-developers/software/ros/ros-hydro-wrapper-for-kuka-youbot-api

First you need to install ROS Hydro as it is described in http://wiki.ros.org/hydro/Installation/Ubuntu

The ros-hydro-ros-base installation will be sufficient.

To install the youBot API wrapper enter in a command shell

$ sudo apt-get install ros-hydro-youbot-driver-ros-interface
$ sudo setcap cap_net_raw+ep /opt/ros/hydro/lib/youbot_driver_ros_interface/youbot_driver_ros_interface 
$ sudo ldconfig /opt/ros/hydro/lib

These commands are important, rerun the last two if encountering problems afterwards.

Youbot oodl is now Youbot common. Same functionality is now obtained from launching youbot_driver_ros_interface youbot_driver.launch on the youbot.

Compiling Youbot applications in hydro

First, clone the repository https://github.com/youbot/youbot_applications in the youbot hydro worskpace. For each application, per folder:

mkdir build cd build cmake .. cd .. make

In order for the youbot_oodl files (now contained in youbot_driver) to be found correctly, edit the CMakeLists.txt file of the application you want to make (e.g. hello_world_demo). Add

SET(OODL_YOUBOT_INCLUDE_DIR /opt/ros/hydro/include/youbot_driver/)

When setting the path variables for compilation. Edit the path if the youbot_driver was installed on a different path (Unwise).

Multiple YouBot ros node/topic name setup

To avoid conflicting names when publishing topics from different youbots, the youbot_oodl or youbot_driver launch files need to be edited, and the name of the youbot (e.g. youbot_1) written before all topic titles. (e.g. <param name="youbot_2/youBotHasBase" ...)

Also needs to be added: <node ns="youbot_2" name="youbot_driver" ...

YouBot Hokuyo Setup

  • For using the Hokuyo: Make sure that the hokuyo_node will be able to access the Hokuyo laser scanner.

Start by listing the permissions of the Hokuyo:

$ ls -l /dev/ttyACM0 You will see something similar to:

crw-rw-XX- 1 root dialout 166, 0 2009-10-27 14:18 /dev/ttyACM0 If XX is rw: the laser is configured properly.

If XX is --: the laser is not configured properly and you need to:

$ sudo chmod a+rw /dev/ttyACM0

http://www.youbot-store.com/wiki/index.php?title=Use_the_Hokuyo_Laser_Range_Finder&hmswSSOID=7477aa5fa6edda214b178abc77280f78dbd46b5d

YouBot Local Navigation (No prior map, with SLAM)

(Tested with Hydro, check and install any additional dependencies, sudo apt-get install ros-hydro-XXX)

  1. Install youbot_driver and youbot_driver_ros_interface.
  2. Install robot_joint_state_publisher (Required for youbot_driver_ros_interface youbot_joint_state_publisher)
  3. In your hydro_ws, clone the youbot_navigation repo (hydro_devel branch), and catkin_make. Make sure the workspace is sourced from now on.
  4. Install ros-hydro-move-base and ros-hydro-hokuyo-node (Required for youbot navigation local and base_front_hokuyo)
  5. Edit bringup_navigation.launch on youbot_navigation_common, replacing youbot_oodl with the newer youbot_driver_ros_interface, youbot_driver and youbot_joint_state_publisher launch files. This file will run everything that is needed for local navigation.
  6. The launch procedure goes youbot_driver_ros_interface youbot_driver.launch, youbot_driver_ros_interface youbot_joint_state_publisher.launch, youbot_navigation_common base_front_hokuyo_node.launch, youbot_navigation_local move_base_local.launch.
  7. All navigation data published through ROS can be visualised using rviz. Make sure to create the appropriate variables and subscribe to the correct topic.

YouBot Mapping

Install ros mapserver (if not groovy navigation)

rosrun mapserver mapfilename

Setup hokuyo (USB plug, setup full ownership, name of usb port)

Install hokuyo node (ros groovy laser sensor)

[Youbot_navigation_robot youbot_launch launch]

Measure hokuyo transformation from robot base link and laser base link (X/Y/Z)

[Look into Federico's Youbot_sensor_frames launch folder]

Broadcast tf

Rosrun hokuyo node

Install amcl package

Rosrun amcl node

[Check youbot_navigation_remote youbot_remote launch]

Setup amcl parameters (Initial position with relation to map origin, initial covariance x/y/theta, displacement for update min d/a, min/max samples[1000], no need to change sensor/odometry model parameters)

FAQ

  • Whenever I attempt to start an application that requires the YouBot's motors, I get an error message saying "EtherCAT Slave/Master already running.

This means that a previous application did not terminate correctly, and thus is stopping you from starting any application that uses the EtherCAT channel. This is solved by running top or equivalent, and killing with -9 any application that has reserved the EtherCAT channel (most likely either the JoyPad app or an unresponsive youbot_oodl or youbot_driver).

  • Whenever I launch youbot_oodl or youbot_driver, I get an ERROR: No EtherCAT connection, No EtherCAT slaves found!, and I have tried the previous solution too.

This tends to happen when the EtherCat port assigned in the config file does not correspond to the one actually used on the Youbot. Just above the printed error, the Configuration file path is printed (e.g. _/opt/ros/hydro/share/youbot_driver/config/youbot-ethercat.cfg), this file needs to be edited and the EthernetDevice number inverted (i.e. From 0 to 1 or from 1 to 0). In case this does not fix the issue, attempt to change the arm ethercat connections (Both on the base and the arm).

  • When I start up the JoyPad application from the YouBot, the YouBot starts moving weirdly and I cannot control with the GamePad.

The JoyPad gamepad was set to XControl rather than DirectControl (Slider button at the back of the controller). Set it to D and kill/restart the application.

  • When I attempt to launch youbot_driver I get this error: /opt/ros/hydro/lib/youbot_driver_ros_interface/youbot_driver_ros_interface: symbol lookup error: /opt/ros/hydro/lib/youbot_driver_ros_interface/youbot_driver_ros_interface: undefined symbol: _ZN3ros7console5printEPNS0_10FilterBaseEPvNS0_6levels5LevelEPKciS7_S7_z [youbot_driver-1] process has died [pid 2975, exit code 127, cmd /opt/ros/hydro/lib/youbot_driver_ros_interface/youbot_driver_ros_interface base/joint_states:=joint_states arm_1/joint_states:=joint_states __name:=youbot_driver __log:=/home/youbot/.ros/log/d0d161a6-7e0f-11e4-9250-94de80e32a35/youbot_driver-1.log].

The ros library directory has not been linked or put in cache. On the youbot, run: $ sudo ldconfig /opt/ros/hydro/lib This should only have to be run once, but it may be necessary to run it before launching youbot_driver.