Skip to content
Hanzhe Teng edited this page Mar 15, 2018 · 5 revisions

Pioneer 3-AT Development Documentation

0. Summary: Main Steps to Configure a New Pioneer Robot

This is just a summary for all the steps to set up a new robot, details for each step are shown in the following chapters.

  1. Install Ubuntu (16.04 LTS) operating system for the onboard computer.
  2. Login into the onboard computer, run update-manager to make system up-to-date.
  3. Run commands sudo apt-get update and sudo apt-get upgrade to make your software up-to-date.
  4. Follow ROS installation instructions to install (desktop-full) ROS Kinetic.
  5. Follow ROSARIA tutorial to create a new workspace, install ARIA library, git clone rosaria package and catkin_make it. For further convenience, don't forget to add source xxx command to .bashrc file.
  6. Add your Linux user to dialout group so that you could get access to serial port like ttyS0. This is an essential requirement for the communication with the microcontroller on pioneer robot.
  7. Configure the network such that robots could automatically connect to the network when powered on.
  8. Modify your hosts file to make further connections easier.
  9. Install SSH by sudo apt-get install openssh-server for further SSH connections from your laptop or other hosts.
  10. Make a SSH keygen on your laptop and copy it to this onboard computer by ssh-copy-id username@hostname.
  11. Git clone and catkin_make this repository on all the robots and your laptop. Enjoy working with your robots!

1. Robot Information

Microcontroller

  • Type: Renesas SH2-based microcontroller
  • Firmware: Advanced Robotics Control and Operations (ARCOS)

Onboard Computer

  • Type: Corvalent Q87 mini-ITX single board computer
  • Operating System: updated to Ubuntu 16.04 LTS
  • CPU: intel core 2 duo, P8400
  • RAM: 2GB
  • Disk: 150GB
  • BIOS Supplier: Phoenix (press DEL key when booting)

Software Development Kit (SDK)

  • SDK Name: MobileRobots' Advanced Robot Interface for Applications (ARIA)
  • Language: C++

Integrated development environment (IDE)

  • Name: RoboWare
  • Version: 1.1

Reference Link

  1. Main Page: http://robots.mobilerobots.com/wiki/Main_Page
  2. Manuals: http://robots.mobilerobots.com/wiki/Manuals
  3. ARCOS: http://robots.mobilerobots.com/wiki/ARCOS
  4. Onboard Computer: http://robots.mobilerobots.com/wiki/Onboard_Computers
  5. ARIA: http://robots.mobilerobots.com/wiki/ARIA
  6. ROSARIA: http://wiki.ros.org/ROSARIA/Tutorials
  7. Beeps Info: http://robots.mobilerobots.com/wiki/Robot_Beeps
  8. RoboWare Official Website: http://www.roboware.me

2. Ubuntu Operating System

Installation

  1. Make a bootable USB stick (URL shows as below)
  2. Modify BIOS to let USB boot first (press DEL to enter BIOS)
  3. Boot from your USB stick
  4. You may see a prompt Not a COM32R image, then press Tab key and the computer will provide a text menu.
  5. You may see a prompt live live-install test, then type live and hit enter key; this will lead to a boot option of Live CD [sic].
  6. When you login into the Ubuntu desktop, you can start the installation.

Notice

  1. If you see an error prompt end kernel panic - not syncing: vfs: unable to mount root fs on unknown block(2,0), then your USB stick may have some problem and you need to remake it.
  2. If the install now button is of grep color that cannot be clicked, you may press back and next again to solve it.
  3. If your Onboard computer only has 2GB RAM, even though the CPU could support 64-bit operating system (amd64), it is better to install a 32-bit one.

Two ways to modify your disk partition

  • Boot from your USB stick, run the command sudo gparted
  • Boot from your USB stick, run the installation program, and select something else instead of Erase disk and install Ubuntu when you have to choose installation type.

Reference Link

  1. How to uninstall the operating system: https://lifehacker.com/how-to-uninstall-windows-or-linux-after-dual-booting-508710422
  2. How to install your ubuntu system: https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop#0
  3. How to create a bootable USB stick: https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#0
  4. One possible problem: https://askubuntu.com/questions/67780/not-a-com32r-image-error-when-trying-to-install-from-a-usb-key
  5. One possible problem: https://askubuntu.com/questions/592213/setup-error-end-kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unk

3. Network Configuration

How to set a static IP on Linux

  1. Connect to an existing wifi network
  2. Edit ipv4 settings
  • Change method from DHCP to Manual
  • Add address, netmask and gateway (e.g. 192.168.1.xxx, 255.255.255.0 or 24, 192.168.1.1)
  • Add DNS server (you can find these info on your router) (e.g. a DNS server of WAN, or directly add the same address as gateway)
  1. Check requiring IPv4 addressing ...
  2. Switch to General tab and check automatically connect to this network ... and all users may connect ...

Notice: if you are running a virtual machine, the network settings of this virtual machine must be set to Bridge mode instead of NAT.

How to scan other machines connected to the same network

By command nmap -sP 192.168.1.0/24, where /24 means to use 24 bits subnet mask.

How to login another computers via SSH (in the same network)

  1. Make sure two computers have a static IP (or resolvable hostname)
  2. Use command ping xxx.xxx.xxx.xxx or ping hostname to check if they can communicate with each other. If not, there may be some problems with your IP or network configuration.
  3. Install the SSH server program on your server computer by command sudo apt-get install openssh-server. (openssh-client is already installed by default)
  4. Basic login command: ssh username@hostname
  • ssh [email protected]
  • ssh 192.168.1.201 (if the username of two computers are the same)
  • ssh -p 1234 [email protected] (if you want to change your port number to 1234, by default the port number is 22)
  • ssh hao@robot1 (if you modified your hosts file)
  • ssh -X hao@robot1 (-X means you can open some GUI on guest computer)
  1. Logout command: exit

Notice

  1. You may modify your SSH server configuration (port, user type, etc.) in /etc/ssh/sshd_config
  2. If you want to use hostname (instead of IP) to login other computers, modify your hosts file by command: sudo gedit /etc/hosts
  3. If you don’t want to enter password every time you login, you can make a SSH key on your client computer via command ssh-keygen, and then copy it to your server computer via command ssh-copy-id username@hostname

How to manage many computers at the same time

Recommend parallel-ssh (PSSH), a reference link is shown below.

When sometimes the computer can’t find WiFi

Command: sudo systemctl restart network-manager

Reference Link

  1. How to set a static IP: http://blog.csdn.net/saviourxx/article/details/8702821 (Sorry about that this is a Chinese tutorial, if you don’t understand it, maybe you can try “translate this webpage to English” on your browser)
  2. How to use SSH to login: http://blog.csdn.net/netwalk/article/details/12952051
  3. PSSH: http://www.linuxidc.com/Linux/2013-08/88547.htm

4. Robot Configuration

Serial Port

Since Onboard computer use serial port ttyS0 to connect with microcontroller, we need to give the present user proper permission to get access to this serial port.

  1. Check if ttyS0 belongs to dialout group
  • by command ls -l /dev/ttyS0
  1. Check how many groups the user belongs to
  • by command groups username
  1. Add this user to dialout group
  • by command sudo gpasswd -a username dialout
  1. Reboot your computer
  2. If you want to remove it from this group
  • by command sudo gpasswd -d username dialout

5. Robot Operating System

Installation

  • Follow the instruction on ROS official website.

Configuration

  • add a newline source ~/workspace/devel/setup.bash to your ~/.bashrc file.

A demo usage

  1. Install rosaria_client package by the below reference link.
  2. Run commands
  • roscore
  • rosrun rosaria rosaria _port:="/dev/ttyS0"
  • rosrun rosaria_client interface
  1. Or you can also start it by roslaunch (port param need to be modified)
  • roslaunch rosaria_client rosaria_client_launcher

Debug FAQ

  1. Prompt Clock skew detected: you may change system time manually
  2. Command line could not autocomplete when try rosrun or roslaunch: it happens when a new ros package was added to the present workspace/src path
  • Solve by command: rospack profile
  1. There is a problem in rosaria_client package that the robot cannot move continuously for 3 seconds because ROSARIA will stop it if no cmd_vel messages are received after 600ms (configurable via cmd_vel_timeout parameter.)

Reference Link

  1. ROS Installation: http://wiki.ros.org/kinetic/Installation/Ubuntu
  2. Multiple Machines: http://wiki.ros.org/ROS/Tutorials/MultipleMachines
  3. Wiki of ROSARIA: http://wiki.ros.org/ROSARIA
  4. How to use ROSARIA: http://wiki.ros.org/ROSARIA/Tutorials/How%20to%20use%20ROSARIA
  5. Demo code of ROSARIA: https://github.com/pengtang/rosaria_client