-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Noetic port of robotnik_base_hw_lib
?
#14
Comments
Hi @Mechazo11, Sure, my colleague @robert-ros will provide everything you need. Best regards, Román |
@RomanRobotnik thank you very much for connecting me with @robert-ros Hi @robert-ros if you would kindly share the With best, |
Hi @Mechazo11 I have uploaded our latest |
@jamendezib thank you very much. I will test it right away and report back if the issue gets resolved. |
@jamendezib |
@Mechazo11 I have updated the branch with robotnik_msgs deb |
@jamendezib thank you very much, I shall let you know if the issue gets resolved |
Hi @jamendezib and @RomanRobotnik, I will report back if any further issues arises for the |
Hi @robert-ros, Thank you very much for helping me with the build problem back in May. Presently I can build the entire
I have isolated the problem the point where
Can you help me in solving this problem? |
Hello,
I have traced the origin of the error from the binary files of With best regards, |
Hi @Mechazo11, Could you show me if possible the launch file |
Hi @jamendezib Following, in sequence, are the robotnik_base_hw.launch <?xml version="1.0"?>
<launch>
<arg name="id_robot" default="$(optenv ROBOT_ID robot)"/>
<arg name="prefix" default="$(arg id_robot)_"/>
<!-- GDB functionality -->
<arg name="debug" default="false" />
<arg unless="$(arg debug)" name="launch_prefix" value="" />
<arg if="$(arg debug)" name="launch_prefix" value="terminator -m -x gdb --args" /> <!-- local debug -->
<!--arg if="$(arg debug)" name="launch_prefix" value="screen -d -m gdb - -args" / --> <!-- ssh/screen debug -->
<!-- Values to multiply on IO raw data received -->
<arg name="k_analog_inputs_multipliers" value="$(optenv ROBOT_K_ANALOG_INPUTS_MULTIPLIERS [1.0, 1.0, 1.0, 1.0])" />
<arg name="robot_gearbox" default="$(optenv ROBOT_GEARBOX 12.52)"/>
<arg name="has_encoder" default="$(optenv ROBOT_HAS_ENCODER false)"/>
<arg name="battery_voltage_offset" default="$(optenv ROBOT_BASE_HW_BATTERY_VOLTAGE_OFFSET 0.0)"/>
<rosparam file="$(find robot_bringup)/config/bringup/robotnik_base_hw/robotnik_base_hw_limits.yaml" command="load" subst_value="true"/>
<rosparam file="$(find robot_bringup)/config/bringup/robotnik_base_hw/robotnik_base_hw.yaml" command="load" subst_value="true"/>
<node name="robotnik_base_hw" pkg="robotnik_base_hw" type="robotnik_base_hw_node" output="screen" launch-prefix="$(arg launch_prefix)"/>
</launch> robotnik_base_hw_limits.yaml joint_limits:
$(arg prefix)front_left_wheel_joint:
has_position_limits: false
has_velocity_limits: true
max_velocity: 27.27 # 3 m/s = 27.27
has_acceleration_limits: false
max_acceleration: 27.27
has_jerk_limits: false
has_effort_limits: false
$(arg prefix)front_right_wheel_joint:
has_position_limits: false
has_velocity_limits: true
max_velocity: 27.27
has_acceleration_limits: false
max_acceleration: 27.27
has_jerk_limits: false
has_effort_limits: false
$(arg prefix)back_left_wheel_joint:
has_position_limits: false
has_velocity_limits: true
max_velocity: 27.27
has_acceleration_limits: false
max_acceleration: 27.27
has_jerk_limits: false
has_effort_limits: false
$(arg prefix)back_right_wheel_joint:
has_position_limits: false
has_velocity_limits: true
max_velocity: 27.27
has_acceleration_limits: false
max_acceleration: 27.27
has_jerk_limits: false
has_effort_limits: false robotnik_base_hw.yaml robotnik_base_hw:
port: /dev/pcan_base
# Auto-recovery behaviour when motors are in EMERGENCY and cannot recover by themselves
auto_restart: true
recovery_period: 30
# Use encoder position instead of velocity for motor velocity calculation
calculate_vel_using_pose: $(arg has_encoder)
# 24V motors: 12.52, 48V motors: 9.56
gearbox_ratio: $(arg robot_gearbox)
# Be carefull if motors don't have enconders and you put motors_enconder: true speed will increase x 4000
motors_encoder: $(arg has_encoder)
motors_encoder_factor: 4000
joint_name: [$(arg prefix)front_left_wheel_joint,$(arg prefix)back_left_wheel_joint,$(arg prefix)front_right_wheel_joint,$(arg prefix)back_right_wheel_joint]
joint_can_id: [1,2,3,4]
joint_type: [vel,vel,vel,vel]
joint_home_offset: [0,0,0,0]
joint_spin: [1,1,-1,-1]
# Values to multiply on IO raw data received
k_analog_inputs_multipliers: $(arg k_analog_inputs_multipliers)
k_battery_voltage_offset: $(arg battery_voltage_offset)
generic_hw_control_loop:
loop_hz: 300
cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:
joints:
- $(arg prefix)front_right_wheel_joint
- $(arg prefix)front_left_wheel_joint
- $(arg prefix)back_right_wheel_joint
- $(arg prefix)back_left_wheel_joint Please don't hesitate to reach out if you need further information. With best, |
Hi @Mechazo11 Do you also have a folder called |
Yes we have robot_parms.env # String. Robot prefix and namespace to be used
#export ROBOT_ID=robot_0 # Centralized, multi agent communication
export ROBOT_ID=robot
# String. Available robot models: rb1_base, summit_xl, summit_xl_steel, rbkairos, rbcar
export ROBOT_MODEL=rbkairos
# String. Specific xacro to be used (has to exist in the descption package)
export ROBOT_XACRO=rbkairos_iiwa_plus.urdf.xacro
# String. Kinematics: diff, omni, ackermann
export ROBOT_KINEMATICS=diff
# Double. Motor gearbox
# 24V motors: 12.52, 48V motors: 9.56
export ROBOT_GEARBOX=9.56
# Diameter depending on the robot model
# Summit: std diameters: 0.22 rubber wheel, 0.2552 mecanuum wheel
export ROBOT_WHEEL_DIAMETER=0.235
# Summit XL: 0.471, Summit XLS and RB-Kairos 0.538
export ROBOT_TRACK_WIDTH=0.538
# Summit XL: 0.45, Summit XLS and RB-Kairos 0.43
export ROBOT_WHEEL_BASE=0.43
# Bool. Flag to set the robot has elevator (normally to pick & place carts)
export ROBOT_HAS_ELEVATOR=false
# Bool. Flag to set whether or not the motors have encoders
export ROBOT_HAS_ENCODER=true
# Bool. If it has safety lasers and/or safety plc
export ROBOT_HAS_SAFETY_MODULE=false
# String. Different safety configurations based on laser safety laser
# sick_microscan3, sick_s300
export ROBOT_SAFETY_LASER_MODEL=sick_microscan3
# BASE_HW
# Double. The real battery voltage (multimeter) minus the one returned by the drive
export ROBOT_BASE_HW_BATTERY_VOLTAGE_OFFSET=0.0
# Double. K multipliers for analog inputs. Example = [6.978947368,-12.5,1.0,1.0]
export ROBOT_K_ANALOG_INPUTS_MULTIPLIERS=[16.61,-12.5,1.0,1.0]
# none, ps4
export ROBOT_PAD_MODEL=ps4
export ROBOT_PAD_DEADZONE=0.12
export ROBOT_PAD_DEV=/dev/input/js_base
# true, false
export ROBOT_HAS_LEDS=true
export ROBOT_LEDS_PORT=/dev/ttyUSB_LEDS rbkairos_params.env was found in export ROBOT_ID=robot
# summit_xl, rbkairos, summit_xl_gen
export ROBOT_MODEL=rbkairos
# summit_xl_std.urdf.xacro
export ROBOT_XACRO=rbkairos_ur5.urdf.xacro
# true, false
export ROBOT_HAS_FRONT_LASER=true
# sick_tim561, hokuyo, ydlidar_f4, sick_s300, sick_microscan3
export ROBOT_FRONT_LASER_MODEL=sick_microscan3
export ROBOT_FRONT_LASER_IP=192.168.0.10
# true, false
export ROBOT_HAS_REAR_LASER=true
# sick_tim561, hokuyo, ydlidar_f4, sick_s300, sick_microscan3
export ROBOT_REAR_LASER_MODEL=sick_microscan3
export ROBOT_REAR_LASER_IP=192.168.0.11
# Merge laser scans? (true/false)
export ROBOT_MERGE_LASERS=true
# true, false
export ROBOT_HAS_FRONT_PTZ_CAMERA=false
export ROBOT_FRONT_PTZ_CAMERA_IP=192.168.0.185
export ROBOT_FRONT_PTZ_CAMERA_MODEL=axis_m5013
# true, false
export ROBOT_HAS_REAR_PTZ_CAMERA=false
export ROBOT_REAR_PTZ_CAMERA_IP=192.168.0.186
export ROBOT_REAR_PTZ_CAMERA_MODEL=axis_m5013
# true, false
export ROBOT_HAS_FRONT_RGBD_CAMERA=true
# usb bus
#export ROBOT_FRONT_RGBD_CAMERA_ID=#1
# orbbec, zed
export ROBOT_FRONT_RGBD_CAMERA_MODEL=orbbec
# true, false
export ROBOT_FRONT_RGBD_CAMERA_IS_REMOTE=false
# jetson-robotnik
export ROBOT_FRONT_RGBD_CAMERA_MACHINE_NAME=jetson-robotnik
# true, false
export ROBOT_HAS_REAR_RGBD_CAMERA=false
# usb bus
#export ROBOT_REAR_RGBD_CAMERA_ID=#1
# orbbec, zed
export ROBOT_REAR_RGBD_CAMERA_MODEL=orbbec
# true, false
export ROBOT_REAR_RGBD_CAMERA_IS_REMOTE=false
# jetson-robotnik
export ROBOT_REAR_RGBD_CAMERA_MACHINE_NAME=jetson-robotnik
# pixhawk, vectornav, myahrs
export ROBOT_IMU_MODEL=pixhawk
export ROBOT_IMU_PORT=/dev/ttyUSB_IMU
# ps3, ps4 (default)
export ROBOT_PAD_MODEL=ps4
# 24V motors: 12.52, 48V motors: 9.56
export ROBOT_GEARBOX=9.56
# true, false
export ROBOT_HAS_ENCODER=true
# skid, omni
export ROBOT_KINEMATICS=omni
# Flag to set if the robot is differential
export ROBOT_DIFFERENTIAL_KINEMATICS=false
# std diameters: 0.22 rubber wheel, 0.25 mecanuum wheel
export ROBOT_WHEEL_DIAMETER=0.25
# summit_xl: 0.471, summit_xl_steel: 0.477, rbkairos_10: 0.538
export ROBOT_TRACK_WIDTH=0.538
# distance between the centres of the front and rear wheels
# summit_xl: 0.458, summit_xl_steel: 0.430
export ROBOT_WHEEL_BASE=0.430
# true, false
export ROBOT_HAS_SAFETY_MODULE=true
#
export ROBOT_MODBUS_SERVER_IP=192.168.0.250
# ARM
# true, false
export ROBOT_HAS_ARM=true
# Robot arm ip
export ROBOT_ARM_IP=192.168.0.210
# For UR arms. Allows just running the driver to read the state or control the arm
export ROBOT_ARM_ENABLE_TRAJECTORY_CONTROL=true
# ARM model ur: (ur5, ur10), kinova: (j2s7s300)
export ROBOT_ARM_MODEL=ur5
# (ur, kinova)
export ROBOT_ARM_MANUFACTURER=ur
# WRIST RGBD CAMERA
# true, false
export ROBOT_HAS_WRIST_RGBD_CAMERA=false
# usb bus
#export ROBOT_WRIST_RGBD_CAMERA_ID=#1
# realsense
export ROBOT_WRIST_RGBD_CAMERA_MODEL=realsense
#GRIPPER
# true, false
export ROBOT_HAS_GRIPPER=false
# egh, wsg50
export ROBOT_GRIPPER_MODEL=egh
# schunk (egh)
export ROBOT_GRIPPER_MANUFACTURER=schunk
export ROBOT_GRIPPER_IP=192.168.0.212
export ROBOT_GRIPPER_PORT=1000
# For UR arms. Allows to control the gripper using UR IO. The arm will need a program
# running to manage the gripper control.
export ROBOT_CONTROL_GRIPPER_BY_SIGNALS=true
# WEB VIDEO SERVER
export ROBOT_LAUNCH_WEB_VIDEO_SERVER=true
export ROBOT_WEB_VIDEO_SERVER_ADDRESS=127.0.0.1
export ROBOT_WEB_VIDEO_SERVER_PORT=8081
# RUN SCREENS (true, false)
export ROBOT_RUN_MAP_NAV_MANAGER=true
export ROBOT_RUN_ROBOT_LOCAL_CONTROL=true
export ROBOT_RUN_PERCEPTION=true
export ROBOT_RUN_NAVIGATION=true
export ROBOT_RUN_RLC_ROSTFUL_SERVER=true
# PERCEPTION PARAMETERS
# true, false
export ROBOT_RUN_AR_LOCATOR=true
# true, false
export ROBOT_RUN_REFLECTOR_LOCATOR=true
# default, hokuyo_utm, hokuyo_ust, sick_s300
export ROBOT_LASER_MODEL_INTENSITY_FILTER=sick_microscan3
# double, distance between tags/reflectors
export ROBOT_DOCKING_STATION_TAG_DISTANCE=0.3
# double, max distance to detect the station
export ROBOT_DOCKING_STATION_TAG_MAX_DISTANCE_DETECTION=3.5
# 2d scan topic used for perception purposes (two tag locator)
export ROBOT_PERCEPTION_SCAN_TOPIC=front_laser/scan
# rgb camera topic used for perception purposes (ar locator)
export ROBOT_PERCEPTION_CAMERA_TOPIC=front_rgbd_camera/rgb/image_raw
# rgb camera info topic used for perception purposes (ar locator)
export ROBOT_PERCEPTION_CAMERA_INFO_TOPIC=front_rgbd_camera/rgb/camera_info
# LOCALIZATION PARAMETERS
# The topic that amcl is using to locate the robot
export ROBOT_LOCALIZATION_SCAN_TOPIC=merged_laser/scan
# Type of odometry used for the localization algorithm (mainly amcl). Values: diff, omni
export ROBOT_LOCALIZATION_ODOM_MODEL=omni
# Folder to save the maps
export ROBOT_MAPS_FOLDER=$HOME/maps
# NAVIGATION PARAMETERS
# true, false
export ROBOT_HAS_DOCKER=true
# true, false
export ROBOT_DOCKER_RUN_CAMERA=true
# true, false
export ROBOT_DOCKER_RUN_LASER=true
# true, false
export ROBOT_RUN_MOVE=true
# teb, eband
export ROBOT_MOVE_BASE_LOCAL_PLANNER=teb
# scan topics
#export ROBOT_NAVIGATION_FRONT_2D_SCAN=front_laser/scan
#export ROBOT_NAVIGATION_REAR_2D_SCAN=rear_laser/scan
#export ROBOT_NAVIGATION_FRONT_RGBD_TO_SCAN=front_rgbd_camera/point_cloud_scan_filtered
#export ROBOT_RUN_LASER_FILTERS=true
# BASE_HW
# The real battery voltage (multimeter) minus the one returned by the drive
export ROBOT_BASE_HW_BATTERY_VOLTAGE_OFFSET=0.0
# K multipliers for analog inputs
export ROBOT_K_ANALOG_INPUTS_MULTIPLIERS=[1.0,-12.5,1.0,1.0]
# BATTERY ESTIMATION
# Voltage of the battery (24,48)
export ROBOT_BATTERY_VOLTAGE=48
# Read voltage from analog input
export ROBOT_READ_VOLTAGE_FROM_ANALOG_INPUT=true
# Analog input of the driver to read the voltage
export ROBOT_VOLTAGE_ANALOG_INPUT_NUMBER=1
# Analog input of the driver to read the current
export ROBOT_CURRENT_ANALOG_INPUT_NUMBER=2
# CHARGE MANAGER
# disabled, automatic_hw, automatic_sw, manual_sw
export ROBOT_DOCKER_MODE=automatic_sw
# true, false
export ROBOT_BATTERY_INVERTED_CONTACT_RELAY=true
#export ROBOT_BATTERY_CONTACT_RELAY_INPUT_NUMBER=2
#export ROBOT_BATTERY_CHARGER_RELAY_OUTPUT_NUMBER=1
# ROBOT_LOCAL_CONTROL
export ROBOT_RLC_ROSTFUL_SERVER_IP=127.0.0.1
export ROBOT_RLC_ROSTFUL_SERVER_PORT=8080
# distance offset for the dock action
export ROBOT_RLC_CHARGE_DOCK_OFFSET_X=-0.65
export ROBOT_RLC_CHARGE_DOCKER_NAMESPACE=pp_docker
export ROBOT_RLC_CHARGE_STEP_DISTANCE=0.06
# frame used to identify the docking_station. It can be different depending on the sensors and locators being used
export ROBOT_RLC_CHARGE_FRAME=robot_docking_station_1 |
Hello @RomanRobotnik,
We have two RBKAIROS units in the iCORE Lab at Louisiana State University. We are working on a large scale project and need to bring all systems (summit_xl, 3d reconstruction, etc) components into ROS Noetic.
We have gotten quite far but have recently faced an issue compiling the
robotnik_base_hw
package. It appears to have a dependency on therobotnik_base_hw_lib
that had an update last year but was still meant for Melodic.Is there a Noetic version of this
.deb
file? If not, what may be the general procedure to fix the dependency issues and convert it back to a.deb
suitable for ROS Noetic?Thank you for your time.
With best regards,
@Mechazo11
The text was updated successfully, but these errors were encountered: