Tag Archives: ROS

Booting BeagleBone with ubuntu Precise 12.04

Thought of using BeagleBone for my robotics projects. Decided to use ubuntu as I can use ROS with it.

Followed the steps mentioned on  elinux.org BeagleBoardUbuntu wiki page

Got the prebuilt ubuntu Precise 12.04 image

wget http://rcn-ee.net/deb/rootfs/precise/ubuntu-12.04-r4-minimal-armhf-2012-07-16.tar.xz

Verified Image with:

md5sum ubuntu-12.04-r4-minimal-armhf-2012-07-16.tar.xz
84dc6bb4c4d74ea2d45faf9aef80b819 ubuntu-12.04-r4-minimal-armhf-2012-07-16.tar.xz

Unpacked the Image:

tar xvf ubuntu-12.04-r4-minimal-armhf-2012-07-16.tar.xz
cd ubuntu-12.04-r4-minimal-armhf-2012-07-16

checked the location of my SD card with.

sudo ./setup_sdcard.sh --probe-mmc

My SD card was present at /dev/sdb

Installed Image with the help of Install script for board.

sudo ./setup_sdcard.sh --mmc /dev/sdb --uboot bone

Unmounted the SD card from PC, inserted into BeagleBone Board and booted the board.  After board was booted without any issues, logged in using default user name and password.

Default user: ubuntu pass: temppwd

Navigating the ROS Filesystem

Started exploring ROS tutorial Navigating the ROS Filesystem which introduces ROS filesystem concepts, and covers using the roscd, rosls, and rospack commandline tools.

Tutorial gives Quick Overview of Filesystem Concepts
Packages: Packages are the lowest level of ROS software organization. They can contain anything: libraries, tools, executables, etc.
Manifest: A manifest is a description of a package. Its most important role is to define dependencies between packages.
Stacks: Stacks are collections of packages that form a higher-level library.
Stack Manifest: These are just like normal manifests, but for stacks.

  • rospack and rosstack are part of the rospack suite. These allow you to get information about packages and stacks.
  • I quickly tried

    $ rospack find roscpp

    which returned

    /opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp

  • roscd is part of the rosbash suite. It allows you to change directory (cd) directly to a package or a stack.
  • As per tutorial I tried

    $ roscd roscpp
    $ pwd

    $ roscd roscpp/include
    $ pwd

    This tutorial mentions about few environment variables

    $ echo $ROS_PACKAGE_PATH
    $ echo $ROS_ROOT

  • rosls is part of the rosbash suite. It allows you to ls directly in a package, stack, or common location by name rather than by package path.

  • $ rosls roscpp_tutorials

    Would return:

    add_two_ints_client listener listener_with_userdata srv
    add_two_ints_server listener_async_spin Makefile srv_gen
    add_two_ints_server_class listener_class manifest.xml talker
    anonymous_listener listener_multiple node_handle_namespaces time_api
    babbler listener_single_message notify_connect timers
    bin listener_threaded_spin parameters
    CMakeLists.txt listener_unreliable ROS_NOBUILD
    custom_callback_processing listener_with_tracked_object src

    I also tried Tab Completion, which works well

    To conclude, following ROS tools are covered in ROS tutorial

    rospack = ros + pack(age)
    rosstack = ros + stack
    roscd = ros + cd
    rosls = ros + ls

    Installing ROS

    In my earlier post on HashBot I mentioned that, My Samsung NC110 netbook with Ubuntu 11.10 (Oneiric) and ROS Electric installed will act as HashBot brain.

    I had already installed Ubuntu 11.10 (Oneiric) in my Samsung NC110 netbook. So I just updated the system with Ubuntu’s Update Manager before installing ROS.
    Then I just followed the steps mentioned on ROS installation guide page “Ubuntu install of Electric”.

    Setup computer to accept software from ROS.org.

    $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu oneiric main" > /etc/apt/sources.list.d/ros-latest.list'

    Set up keys

    $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

    re-indexe the ROS.org server

    $ sudo apt-get update

    Desktop-Full Install

    $ sudo apt-get install ros-electric-desktop-full

    ROS Electric desktop full was installed without any errors. It took around 1GB for download and around 2GB after install on hard-disk.

    Next I will explore ROS Tutorials.

    HashBot

    To Build HashBot, something like TurtleBot, which will use ROS(Robot Operating System), I started looking for resources I allready had.

    TurtleBot uses iRobot Create. I will be making one rover with mechanical hobby kit, DC motors and an Arduino. My Samsung NC110 netbook with Ubuntu 11.10 (Oneiric) and ROS Electric installed will act as HashBot brain. Also I will be using Microsoft Xbox 360 Kinect sensor as HashBot’s eyes.

    ROS

    After successfully building basic robots using microcontrollers , like obstacle detection robot using infrared LED’s.

    Wii remote controlled robot.

    and Lego Mindstorms NXT robot.

    I was looking for something advanced to build. After searching on the Internet, I came across ROS.

    ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

    More information on ROS by willowgarage can be found on
    http://www.willowgarage.com/pages/software/ros-platform
    http://www.ros.org/wiki/

    I will be exploring ROS for my next robot project.