Code Monkey home page Code Monkey logo

diffwheel_robot_control's Introduction

Full guide to install the package on the robot

  • Hardware Requirements

    • D.W. Platform from Next Generation Robotics srl (add website)

    • 1 YD Lidar

    • 1 Camera connected through CSI (Camera Serial Interface)

    • 2 Realsense D435i (optional)

  • Configuring PC

    It is needed to:

    1. Install Ubuntu 18.04.5 LTS

    2. Install CUDA and NVIDIA drivers

    3. Install ROS

    4. Build Opencv with CUDA enabled (optional)

    5. Install Realsense SDK (optional)

    6. Build RTABMAP (optional)

    7. Install Realsense-ROS wrapper (optional)

    To do so, you can follow these guides, based on the kind of pc you are using:

  • Create a brand new catkin workspace

      $ mkdir -p ~/catkin_ws/src
      $ cd ~/catkin_ws/
      $ catkin_make
      $ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc 
      $ source ~/.bashrc
    
  • Install Needed Packages

    1. gscam:

       $ cd catkin_ws/src
       $ git clone https://github.com/ros-drivers/gscam
      

    modify the file ./gscam/Makefile with this string:

      EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1 -DGSTREAMER_VERSION_1_x=On
    
    1. image_common:

       $ cd catkin_ws/src
       $ git clone https://github.com/ros-perception/image_common
      
    2. ydlidar_ros-master:

       $ cd catkin_ws/src
       $ git clone -b master --single-branch https://github.com/YDLIDAR/ydlidar_ros
       $ cd
       $ sudo mkdir /dev/ydlidar
       $ cd catkin_ws/src/ydlidar_ros/startup
       $ sudo chmod 777 ./*
       $ sudo sh initenv.sh
      

    in case of errors ignore them.

    1. joy:

       $ sudo apt-get update
       $ sudo apt-get install ros-melodic-joy
       $ sudo apt-get install ros-melodic-joystick-drivers
      
  • Bash and IP Configuration:

    1. Add the following lines at the end of .bashrc file (hidden file in home directory):

       export ROS_MASTER_URI=http://ipaddress:port
       export ROS_IP=ipaddress
      

    where ipaddress is the wifi board ip address (example: 192.168.1.100) and the port is the one used by ROS for communication (standard port: 11311)

    1. set the manual IP Address of your wifi board accordingly (edit connections --> IPv4)

    2. set the manual IP Address of your ethernet board:

      • IP: 192.168.0.100

      • Sub: 255.255.192.0

      • Gateway: 192.168.0.1

  • Build the workspace:

      $ rosdep install --from-paths ~/catkin_ws --ignore-src --rosdistro=ROSmelodic
      $ catkin_make
      $ source ~/.bashrc
      $ source devel/setup.bash
    
  • Usage:

    1. Adjust Robot Parameters in the file: ./udp_controller/src/kinematics_matrix.py

    2. Execute the launch file:

       $ roslaunch state_machine sm_startup.launch
      
    3. Finally launch starteleop.launch on the remote pc (see DiffWheel_Robot_Teleop package).

  • Final release usage:

    1. Execute the launch file:

       $ roslaunch state_machine full_setup.launch
      
    2. Define the following arguments (default values in parentheses)

       use_robot_local (false)   # start robot localization
       local (true)              # control the robot locally
       load_map (true)           # load the global map
       use_rtab_map (true)       # start rtab_map
      

diffwheel_robot_control's People

Contributors

danieleleonardis avatar ltiseni94 avatar marcobiasizzo avatar mingauss avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.