Skip to content

LinyunLiu/AIRobot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proto Robotics Project

A robotics research platform at TWU RRU (Trinity Western University's Robotics Research Unit).

Proto V2 (2024-09-09 to ???)

Proto V2 is currently in development. It's intended goal is to be the first autonomous delivery robot on campus.

Contributors

Documentation

Proto V1 (2024-05-15 to 2024-08-31)

Proto V1 was a the pioneering robotics from scratch project. It was a simple teleoperation robot controlled with a web interface and simple BLDC motor controller board.

Contributors

Documentation

Most of the Proto V1 Documentation was done with notion and is kept in the Proto V1 directory as a zip file.

Required External Repositries

RPLIDAR A1 https://index.ros.org/r/rplidar_ros/

  • GitHub page Readme.md is the instruction for ROS and ROS2. Follow ros.org.

Lidar Odometry https://github.com/MAPIRlab/rf2o_laser_odometry

BNO055 (IMU) https://github.com/process1183/ros2_bno055

Required ROS2 packages
  • nav2 https://docs.nav2.org/ and turtlebot3
    sudo apt install -y ros-humble-navigation2
    sudo apt install -y ros-humble-nav2-bringup
    sudo apt install -y ros-humble-turtlebot3*
How to install ros2 packages
  • create workspace folder

    mkdir ros2_ws
    mkdir ros2_ws/src
    #copy folders of 
    cd ros2_ws
    colcon build 
  • put below in the bottom of ~/.bashrc

      source [path_to]/ros2_ws/install/setup.bash
      export TURTLEBOT3_MODEL=waffle # if you are using turtlebot3 packages
    
ROS2 tips - ROS2 humble Tutorial: https://www.youtube.com/watch?v=Gg25GfA456o
  • create workspace folder

    mkdir ros2_ws
    mkdir ros2_ws/src
    cd ros2_ws
    colcon build
  • create package that is using python

    cd src
    ros2 pkg create airobot_controller --build-type ament_python --dependencies rclpy
  • in .bashrc source setup.bash path

      source [path_to]/ros2_ws/install/setup.bash # make sure it is the right path
    
  • when create new file

      put in setup.py >> items of 'consol_scripts'
          "name = pkgname.pyfile:main", 
    

    ex) portion of setup.py

    entry_points={
        'console_scripts': [
            'mapToOdomTF = odom.mapToOdomTF:main',
            'initialPoseSetter = odom.initialPoseSetter:main',
            'teleop_cmd_vel = odom.teleop_cmd_vel:main',
            'testOdom = odom.testOdom:main',
            'cmd_vel_controller = odom.cmd_vel_controller:main',
            'LaserToBase = odom.LaserToBase:main',
            'bno = odom.bno:main',
            'left_wheel = odom.leftWheel:main',
            'right_wheel = odom.rightWheel:main',
            'left_wheel2 = odom.leftWheel2:main',
            'right_wheel2 = odom.rightWheel2:main',
            'odom_publisher = odom.odomPublisher:main',
            'odom_publisher2 = odom.odomPublisher2:main',
            'teleopWheel = odom.teleopWheel:main',
            'icp = odom.icp:main',
        ],
    },
    
    
                
  • at ros2_ws need it when ever new ros2 python file is created

    '--symlink-install' let your package auto-sync when edit the .py file

    colcon build --symlink-install 
  • build specific package

    colcon build --symlink-install --packages-select <Package_Name>
  • ERROR FIXING: if setup.py install is deprecated

    sudo apt install python3-pip
    pip3 list |grep setuptools
    #if the version is not 58.2.0
    pip3 install setuptools==58.2.0
  • if you use another package in a package

    put <depend>packageName</depend> in package.xml

    ex)

    <depend>geometry_msgs</depend>
  • ros2 investigate

    ros2 topic list
    ros2 topic info <topicName>
    ros2 interface show <Type from above>
  • check frames

    ros2 run tf2_tools view_frames
  • To add 'launch' dir (or any dir with different name)

    in package.xml

    <depend>launch</depend>

    <depend>launch_ros</depend>

    in setup.py

    import os
    from glob import glob 
    data_files=[
        ...
        (os.path.join('share', package_name, 'launch'), glob('launch/*.py')),
    ],
Run rviz2 with template
ros2 run rviz2 rviz2 -d <path to .rviz file>
RpLiDAR A1
ros2 launch rplidar_ros rplidar_a1_launch.py 
Cheak Connections between Frames
ros2 run tf2_tools view_frames
SLAM
ros2 launch odom slam_launch.py 
  • To save the map from SLAM

      ros2 run nav2_map_server map_saver_cli -f ~/map
    
Nav2 Turtlebot3 simulation
  • tutorial: https://roboticsbackend.com/ros2-nav2-tutorial/
  • run each one in different terminal
    ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
    
    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True 
    
    ros2 run turtlebot3_teleop teleop_keyboard
Nav2 using turtlebot packages
  • make sure turtlebot3, nav2, and custom packages in this repo is all installed
    ros2 launch odom nav2_launch.py 
    ros2 run odom cmd_vel_controller
    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=False map:=[path_to]/hallway.yaml

About

A robotics research platform at TWU RRU (Trinity Western University's Robotics Research Unit).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors