Skip to content

Naufaldo/src

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,810 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS Ancabot Stack

1. Dependencies

ros-noetic-sound-play
ros-noetic-diagnostic-updater
ros-noetic-xacro
ros-noetic-openni2-launch
ros-noetic-depthimage-to-laserscan
ros-noetic-joystick-drivers
ros-noetic-imu-filter-madgwick
ros-noetic-robot-localization
ros-noetic-rtabmap
ros-noetic-rtabmap-ros
ros-noetic-robot-state-publisher
ros-noetic-gazebo-ros-control
ros-noetic-navigation
ros-noetic-move-base
ros-noetic-navfn
ros-noetic-amcl
libusb-1.0-0-dev

2. Nodes Descriptions

hexapod_controller

This is the main node of the stack. It handles all control, gait, IK and servo communications with the legs. Minimal latency was required to keep the gait smooth and synced with odometry hence the reason they are all combined in this one node.

Subscribed Topics

 cmd_vel (geometry_msgs/Twist) Velocity command. 
 body_scalar (geometry_msgs::AccelStamped) Scalar to modifiy the orientation of the body.
 head_scalar (geometry_msgs::AccelStamped) Scalar to modifiy the pan and tilt of the optional turret.
 state (std_msgs::Bool) Bool array to record state of the hexapod. Standing up, sitting etc.
 imu/data (sensor_msgs::Imu) Used in optional auto body leveling on non level ground.

Published Topics

sounds (hexapod_msgs::Sounds) Custom message to send sound cues to the optional sound package.
joint_states (sensor_msgs::JointState) Joint states for rviz and such.
odometry/calculated (nav_msgs::Odometry) Calculated odometry from the gait system in the package.
twist (geometry_msgs::TwistWithCovarianceStamped) Twist message syncronized with the gait system. 
hexapod_controller/include/servo_driver.h Dynamixel Driver Settings (USB Port, Protocol, Baud Rate)

hexapod_bringup

This package has all the launch files. From simple locomotion only to full mapping and localization examples.

hexapod_description

This package has all the param files. You will start with one of the param config files to describe your hexapod. It also has params for different telop controllers. The xacro and meshes also reside in this package.

params/hexapod.yaml Describe robot parameters.
params/dynamixel.yaml Dynamixel Control Table

hexapod_twist_keyboard

Reading from the keyboard and Publishing to Twist!

Moving around:
   q    w    e
   a    s    d
   z    x    c
For Holonomic mode (strafing), hold down the shift key:
   Q    W    E
   A    S    D
   Z    X    C
Body twist:
   u    i    
   j    k    
   m    ,    
   ``
r : rise up
t : sit dowm
anything else : stop
o : lifter up
p : lifter down
- : gripper open
= : gripper close

added imu_topic with mpu6050 but didn't worked it with the controller

CTRL-C to quit

Example Launch Command

roslaunch hexapod_bringup hexapod_simple.launch

3. Install

Clone Git Repository :

git clone https://github.com/Naufaldo/src.git

Install All Dependencies :

sudo apt-get install -y ros-noetic-sound-play
sudo apt-get install -y ros-noetic-diagnostic-updater
sudo apt-get install -y ros-noetic-xacro
sudo apt-get install -y ros-noetic-openni2-launch
sudo apt-get install -y ros-noetic-depthimage-to-laserscan
sudo apt-get install -y ros-noetic-joystick-drivers
sudo apt-get install -y ros-noetic-imu-filter-madgwick
sudo apt-get install -y ros-noetic-robot-localization
sudo apt-get install -y ros-noetic-rtabmap
sudo apt-get install -y ros-noetic-rtabmap-ros
sudo apt-get install -y ros-noetic-robot-state-publisher
sudo apt-get install -y ros-noetic-gazebo-ros-control
sudo apt-get install -y ros-noetic-navigation
sudo apt-get install -y ros-noetic-move-base
sudo apt-get install -y ros-noetic-navfn
sudo apt-get install -y ros-noetic-amcl
sudo apt-get install -y libusb-1.0-0-dev

into the catkin folder then make a catkin by :

catkin_make

then source the catkin by : source devel/setup.bash

then can launch the program

hexapod simple :

roslaunch hexapod_bringup hexapod_simple.launch

Hector Slam Rqt Graph rqt grpah

Research Paper

Title: Autonomous navigation system for hexa-legged search and rescue robot using LiDAR

Published in: IAES International Journal of Robotics and Automation (IJRA), March 2024, Volume 13, Issue 1, Pages 50-64

DOI: 10.11591/ijra.v13i1.pp50-64

Authors: Aris Budiyarto, Sarosa Castrena Abadi, Naufaldo

License: CC BY-SA 4.0

Gazebo Simulation

This is to do simulation with Gazebo and then tried using ROS Melodic , but still need to create the inverse Kinematic and the gait Gazebo_simulation to do run this launch :

roslaunch hexapod_gazebo hexapod_gazebo2.launch 

then in the new tab terminal run this program :

rosrun hexapod_bringup gazebo_test.py 

if you can't do rosrun pls do chmod +X gazebo_test.py first in the hexapod_bringup/src

then you can do control each joint and also dont forget to install

sudo apt-get update
sudo apt-get install ros-melodic-effort-controllers ros-melodic-joint-state-controller ros-melodic-controller-manager

About

Hexapod Robot Control

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors