Skip to content

A repository for a 6-wheel rocker bogie rover, based on Robotic Operative System ROS and python to control its perception and action systems.

Notifications You must be signed in to change notification settings

HaroldMurcia/AlphaROVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alpha ROVER

A repository for a 6-wheel rocker bogie rover, based on Robotic Operative System ROS and Python to control the perception and action systems.

drawing

  • Watch the YouTube video here
  • Read the document here

This repository contents:

  • Source codes
  • Dev scripts
  • Data files
/your_root                / path
|--README.md     		  / Instructions to configure the AlphaROVER
|--src         			  / scripts for the system
	  |--APPS
	  |--Arduinio_gps+imu
	  |--Arm            / Based on: https://github.com/FRC4564/Maestro/
	  |--Config
	  |--Control
	  |--EKF
	  |--GPIO
|--data
	|--mechanics  
		|--alpha_full.pdf
		|--inventor_files
		|--photos
	|--electronics
		|--diagrams
		|--proteus_files
|--user_pc
  |--cam_bridge.py

Hardware Requirements:

  • NVIDIA Jetson TK1 or NANO
  • Ion Motion Roboclaw, Dual DC motor driver
  • Pololu USB servo Control [POL-1353]
  • Logitech Wireless Gamepad F710
  • Hokuyo UTM-30LX-EW Scanning Laser Rangefinder
  • Xsens MTi 10-series
  • PC host running Ubuntu
  • AlphaROVER platform

Software Requirements:

  • OpenCV
  • Hamachi

Jetson NANO

Follow the isntructions from NVIDIA

  • Download the las SD card image
  • Insert the SD and open the temrinal application
  • dmesg | tail | awk '$3 == "sd" {print}'
  • /usr/bin/unzip -p ~/Downloads/jetson_nano_devkit_sd_card.zip | sudo /bin/dd of=/dev/sd<x> bs=1M status=progress
  • sudo eject /dev/sd<x>
$ rosdep apt autoremove thunderbird*
$ sudo apt autoremove libreoffice*
$ sudo apt-get remove --purge libreoffice*
$ sudo apt-get remove libreoffice-core
$ sudo apt-get remove snapd lightdm cups chromium*
$ sudo apt-get remove libcurlpp0
$ sudo apt autoremove transmission-gtk
$ sudo systemctl set-default multi-user.target
$ rosdep update
$ rosdep upgrade
$ sudo apt install htop
$ sudo apt install screen
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt update
#sudo apt install ros-melodic-desktop
$ sudo apt install ros-melodic-ros-base
$ apt search ros-melodic
$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo rosdep init
$ rosdep update
$ sudo apt-get install nano

Catkin configuration

$ sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev $ python-rosinstall python-rosinstall-generator python-wstool build-essential git
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

Installing other repositories

  • Install LiDAR sudo apt install ros-melodic-urg-node
  • Install Joy sudo apt install ros-melodic-joy
  • Install tf sudo apt install ros-melodic-tf
  • Install MS Kinect V1 sudo apt-get install libfreenect-dev sudo apt-get install ros-melodic-freenect-launch
  • Install the MTi USB Serial Driver
    $ git clone https://github.com/xsens/xsens_mt.git
    $ cd ~/xsens_mt
    $ make
    $ sudo modprobe usbserial
    $ sudo insmod ./xsens_mt.ko
    
  • Install gps_common or gps_umd as available based on the ROS distributable sudo apt-get install ros-melodic-gps-umd or sudo apt-get install ros-melodic-gps-common
  • Isntall MTi rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/xsens_mti_ros_node.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install Dynamixel rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/dynamixel_motor.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install gscam rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/gscam.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install orbit camera actuation rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/orbit_camera_actuation.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install roboclaw rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/roboclaw_ros.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install vidsrv rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/vidsrv.git
    $ cd ~/catkin_ws/
    $ catkin_make
    
  • Install Maestro rosnode
    $ cd ~/catkin_ws/src
    $ git clone https://github.com/HaroldMurcia/Maestro.git
    $ cd ~/catkin_ws/
    $ catkin_make
    

Installing AlphaROVER repository

$ cd ~/catkin_ws/src
$ git clone https://github.com/HaroldMurcia/AlphaROVER.git
$ cd ~/catkin_ws/
$ catkin_make
$ cd ~/catkin_ws/src/AlphaROVER/src/Config/
$ sudo chmod -R 777 config_init.sh
$ sudo ./config_init.sh
$ sudo reboot

Getting Started on host PC

  • Install hamachi and haguichi.

Configuring a Linux-Supported Joystick with ROS

  • Install the package: sudo apt-get install ros-melodic-joy
  • Connect the joystick to your computer and let's see if Linux recognized it: ls /dev/input/
  • The joystick will be referred to by jsX, you can test it by running: sudo jstest /dev/input/jsX Move the joystick around to see the data change.
  • Give permissions on the joystick port: sudo chmod a+rw /dev/input/jsX
  • To start the joy node:
    roscore
    rosparam set joy_node/dev "/dev/input/jsX"
    rosrun joy joy_node
    
  • To see the data from the joystick: rostopic echo joy

Functions to add on PC's .bashrc file

source /opt/ros/melodic/setup.bash

function pilot
{
  ls -l /dev/input/jsX
  sudo chmod a+rw /dev/input/jsX
  rosparam set joy_node/dev "/dev/input/jsX"
  rosrun joy joy_node &
 }

# If want to connect through hamachi
function exportar_hamachi
{
        export ROS_IP = {pcIP}
}

function exportar
{
  export ROS_IP = {pcIP}
}

# To access Jetson webcam image
function webcam
{
	python ~/cam_bridge.py
}

Authors:

Universidad de Ibagué - Ingeniería Electrónica.


About

A repository for a 6-wheel rocker bogie rover, based on Robotic Operative System ROS and python to control its perception and action systems.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages