How to configure Marty ROS in Raspberry Pi

Hello,

I could not use the Marty image for my Rasberry Pi.

I've already installed ROS in Raspberry Pi following the steps in http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi

Please advise what's the next steps?

Thanks and best regards,

James

Discussion

Leave a comment and join the discussion here


Please Log In or Sign Up to write a comment response

12 Responses

ecarrasc

Hello all,

After some testings I found out that the error Raspicam undetected came from the absence of the absence of the /camera parameter. For some reason this is not created in the ROS framework once the lauch file for Raspicam is executed.

I created the parameter manually with the value "true" - once the Raspicam node was running. After this I was able to start the facetracker node. I did not have a deeper look into the problem, but this worked for me.

Regards Edgar

12:02:53, 28th September 2017   |   Permalink   |   View Source
ecarrasc

Hello all,

I received my Marty at the beggining of August and I am very glad to have one. Thanks for your effort! I bought and installed the Raspberry Pi 3 board. I used your image for the board. I am connecting over WiFi. I can see the list of topics of the Marty board on a Linux computer with Ubuntu 14.04 and ROS Indigo. I started the raspicam node and I suscribed on the external computer to the /camera/image topic. So far so good.

I have a problem starting the face tracking node in Marty. Here is the message I receive after using this command on the Marty board


$rosrun marty_face_tracker marty_face_tracker


pi@marty:~ $ rosrun marty_face_tracker marty_face_tracker 
[ WARN] [1505739748.347998302]: video_output set to false
[ WARN] [1505739748.352516328]: 'ignore' param set to true, loading default values

[ERROR] [1505739748.353084291]: Raspicam undetected.

[ WARN] [1505739748.353313924]: Has the raspicam node been instantiated? If not, check ros_marty/launch/marty.launch

[ERROR] [1505739748.353595483]: Face classifier unset.

[ WARN] [1505739748.353805950]: Set a face classifier in ../launch/face_tracking.launch!

[ERROR] [1505739748.353996521]: Eye classifier unset.

[ WARN] [1505739748.354179696]: Set an eye classifier in ../launch/face_tracking.launch!

[ERROR] [1505739748.354355632]: Smile classifier unset.

[ WARN] [1505739748.354523911]: Set a smile classifier in ../launch/face_tracking.launch!

[ERROR] [1505739748.354701878]: Parameter loading failed. Shutting down...

(I hope the formatting works)

Thanks

Edgar

13:08:03, 18th September 2017   |   Permalink   |   View Source
buhion OP

Thanks @sandy.

Yes, rosserial is installed

pi@raspberrypi:~/ros_catkin_ws $ rospack find rosserial_python
/home/pi/ros_catkin_ws/src/rosserial/rosserial_python

Yes, serial is activated in Pi 3

pi@raspberrypi:~/ros_catkin_ws $ cat /boot/config.txt | grep uart
enable_uart=1

Yes, everything is in ros_catkin_ws

I did not use your Pi image because I already had another previously installed with some code I planned to use with Marty, and I also wanted to try ROS kinetic and this is part of my learning process.

03:11:58, 06th September 2017  *   |   Permalink   |   View Source
sandy STAFF

Hi again,

It looks like rosserial (and a couple of other nodes) aren't launching properly. Do you have rosserial installed?

Is the serial activated on your Raspberry Pi? If you have a Pi 3 with WiFi it's a bit more complicated than it used to be...

Also - is everything in ros_catkin_ws? Or do you have a different workspace for your Marty stuff? If so you'll need to source it to make sure it's on your ROS path

Out of interest, what was the issue with running the Raspberry Pi image we provide? We'd really like to get that sorted out to help make it easier for people to get their Marty ros-ified.

Sandy

19:12:33, 05th September 2017  *   |   Permalink   |   View Source
buhion OP

Hello @helmi,

Yes Rick is plugged in correctly to the Pi.

Below is the roslaunch output:

roslaunch ros_marty startup.launch
... logging to /home/pi/.ros/log/e3ff77e6-9201-11e7-864a-b827eb1d4872/roslaunch-raspberrypi-1351.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://raspberrypi:42893/

SUMMARY
========

CLEAR PARAMETERS
 * /marty/cmd_server/
 * /marty/serial_node/

PARAMETERS
 * /marty/AUX1/dir: 1
 * /marty/AUX1/max: 110
 * /marty/AUX1/min: -110
 * /marty/AUX1/mult: 1
 * /marty/AUX1/zero: 0
 * /marty/AUX2/dir: 1
 * /marty/AUX2/max: 110
 * /marty/AUX2/min: -110
 * /marty/AUX2/mult: 1
 * /marty/AUX2/zero: 0
 * /marty/EYES/dir: 1
 * /marty/EYES/max: 126
 * /marty/EYES/min: -126
 * /marty/EYES/mult: 1
 * /marty/EYES/zero: 0
 * /marty/LARM/dir: 1
 * /marty/LARM/max: 126
 * /marty/LARM/min: -126
 * /marty/LARM/mult: 1
 * /marty/LARM/zero: 0
 * /marty/LHIP/dir: 1
 * /marty/LHIP/max: 100
 * /marty/LHIP/min: -100
 * /marty/LHIP/mult: 1
 * /marty/LHIP/zero: 0
 * /marty/LKNEE/dir: -1
 * /marty/LKNEE/max: 110
 * /marty/LKNEE/min: -110
 * /marty/LKNEE/mult: 1
 * /marty/LKNEE/zero: 0
 * /marty/LTWIST/dir: 1
 * /marty/LTWIST/max: 110
 * /marty/LTWIST/min: -110
 * /marty/LTWIST/mult: 1
 * /marty/LTWIST/zero: 0
 * /marty/RARM/dir: -1
 * /marty/RARM/max: 126
 * /marty/RARM/min: -126
 * /marty/RARM/mult: 1
 * /marty/RARM/zero: 0
 * /marty/RHIP/dir: 1
 * /marty/RHIP/max: 100
 * /marty/RHIP/min: -100
 * /marty/RHIP/mult: 1
 * /marty/RHIP/zero: 0
 * /marty/RKNEE/dir: -1
 * /marty/RKNEE/max: 110
 * /marty/RKNEE/min: -110
 * /marty/RKNEE/mult: 1
 * /marty/RKNEE/zero: 0
 * /marty/RTWIST/dir: 1
 * /marty/RTWIST/max: 110
 * /marty/RTWIST/min: -110
 * /marty/RTWIST/mult: 1
 * /marty/RTWIST/zero: 0
 * /marty/calibrated: True
 * /marty/camera: False
 * /marty/camera_ori: 15
 * /marty/fall_disable: False
 * /marty/fall_threshold: 0.7
 * /marty/joy_node/autorepeat_rate: 10
 * /marty/launched: True
 * /marty/odom_accel: True
 * /marty/raspicam_on: False
 * /marty/ready_move: True
 * /marty/robot_description: <?xml version="1....
 * /marty/simulated: False
 * /marty/use_sim_time: False
 * /name: marty
 * /rosdistro: kinetic
 * /rosversion: 1.12.7

NODES
  /marty/
    cmd_server (ros_marty/cmd_server)
    joy_node (joy/joy_node)
    marty_joy (marty_joy/marty_joy)
    robot_state_publisher (robot_state_publisher/state_publisher)
    serial_node (rosserial_python/serial_node.py)

auto-starting new master
process[master]: started with pid [1362]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e3ff77e6-9201-11e7-864a-b827eb1d4872
process[rosout-1]: started with pid [1375]
started core service [/rosout]
ERROR: cannot launch node of type [rosserial_python/serial_node.py]: rosserial_python
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/pi/ros_catkin_ws/src
ROS path [2]=/opt/ros/kinetic/share
ERROR: cannot launch node of type [ros_marty/cmd_server]: can't locate node [cmd_server] in package [ros_marty]
process[marty/robot_state_publisher-4]: started with pid [1380]
ERROR: cannot launch node of type [joy/joy_node]: joy
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/pi/ros_catkin_ws/src
ROS path [2]=/opt/ros/kinetic/share
ERROR: cannot launch node of type [marty_joy/marty_joy]: marty_joy
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/pi/ros_catkin_ws/src
ROS path [2]=/opt/ros/kinetic/share
06:48:13, 05th September 2017   |   Permalink   |   View Source
helmi

Hey @buhion,

That's great!

Some topics are only published via rosserial from the Rick. Is the Rick plugged in correctly to the Pi?

Helmi :)

17:49:05, 04th September 2017   |   Permalink   |   View Source
buhion OP

Thanks @sandy and @helmi

Checking out the dev branch solved the missing headers file issue.

I'm now able to launch the whole stack.

    rostopic list  
    /marty/joint_states  
    /rosout  
    /rosout_agg  
    /tf  
    /tf_static

However, /marty/accel is missing. Please advise?

    rostopic echo /marty/accel
    WARNING: topic [/marty/accel] does not appear to be published yet

FYI for those who might read this thread, some of the issues and fixes are:

<hr>

Issue:

    roslaunch ros_marty startup.launch
    [startup.launch] is neither a launch file in package [ros_marty] nor is [ros_marty] a launch file name
    The traceback for the exception was written to the log file

Fix:

    source /home/pi/ros_catkin_ws/devel/setup.bash
<hr>

Issue:

    roslaunch ros_marty startup.launch
    rosout is not built. Please run 'rosmake rosout'
    failed to start core service [/rosout]

Fix:

    export CMAKE_PREFIX_PATH=/opt/ros/kinetic   
    touch /opt/ros/kinetic/.catkin
<hr>
10:35:34, 03rd September 2017  *   |   Permalink   |   View Source
helmi

Hey,

Ah, I think it's failing to build because it's trying to compile ros_marty before marty_msgs, and marty_msgs is a dependency of ros_marty.

The quick and easy way to fix this would be to delete your cloned ros_marty package and just make marty_msgs first. Then clone ros_marty back and build everything.

But @sandy is right, try the dev branches and make sure it's all up to date.

Hope that helps!

Helmi :)

11:33:53, 02nd September 2017  *   |   Permalink   |   View Source
sandy STAFF

Hi there,

Jumping in quickly as @helmi isn't in the office now - but from a quick look it seems that the master branch isn't that up to date.

For now can you try checking out the dev branch of marty_msgs? We'll get it merged into master as soon as we can

Cheers,

Sandy

16:39:18, 01st September 2017   |   Permalink   |   View Source
buhion OP

Thanks @angus and @helmi

I also catkin_make marty_description.

However for ros_marty, it could not find some header files like Sound.h, Keyframe.h, etc

In file included from /home/pi/ros_catkin_ws/src/ros_marty/src/marty_core.cpp:9:0:
/home/pi/ros_catkin_ws/src/ros_marty/include/ros_marty/marty_core.hpp:39:30: fatal error: marty_msgs/Sound.h: No such file or directory
 #include <marty_msgs/Sound.h>

Please advise.

Thanks

14:24:28, 01st September 2017  *   |   Permalink   |   View Source
helmi

Hey James,

Sorry to hear you're having issues with our image! Can you tell me what steps you've followed and where it fails? Maybe I can see what went wrong.

If you've got ROS fully installed already on your Pi though, you're not far from getting it all up and running. Firstly, get your Pi and workstation computer talking to each other, see the Networking section of the Deep-Dive article. Then, follow the GitHub links @angus provided and clone them into your Pi's catkin workspace's src folder. Now, all you should need to is to build the workspace (use catkin_make). And then finally, you can launch the whole stack using one of the included .launch files:

roslaunch ros_marty startup.launch

On a final note, our stack doesn't officially support Kinetic on the Pi, rather Indigo, so your mileage may vary. Having said this, I believe it should still run okay.

Let me know if you're still having issues!

Cheers,

Helmi

10:03:31, 31st August 2017  *   |   Permalink   |   View Source
angus STAFF
09:36:19, 31st August 2017   |   Permalink   |   View Source