Skip to content
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

Open
Mechazo11 opened this issue May 13, 2024 · 14 comments
Open

Noetic port of robotnik_base_hw_lib? #14

Mechazo11 opened this issue May 13, 2024 · 14 comments
Assignees

Comments

@Mechazo11
Copy link

Mechazo11 commented May 13, 2024

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 the robotnik_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

@RomanRobotnik
Copy link
Contributor

Hi @Mechazo11,

Sure, my colleague @robert-ros will provide everything you need.

Best regards,

Román

@Mechazo11
Copy link
Author

@RomanRobotnik thank you very much for connecting me with @robert-ros

Hi @robert-ros if you would kindly share the .deb file for robotnik_base_hw_lib I can go ahead and test it with the noetic port we are working on in our lab.

With best,
@Mechazo11

@jamendezib
Copy link
Contributor

Hi @Mechazo11

I have uploaded our latest .deb file to the lib folder in this branch: https://github.com/RobotnikAutomation/robotnik_base_hw/tree/fix/noetic_lib

@Mechazo11
Copy link
Author

@jamendezib thank you very much. I will test it right away and report back if the issue gets resolved.

@Mechazo11
Copy link
Author

@jamendezib
Where can I find the ros-noetic-robotnik-msgs package?

Screenshot from 2024-05-16 10-45-52

@jamendezib
Copy link
Contributor

jamendezib commented May 17, 2024

@Mechazo11 I have updated the branch with robotnik_msgs deb

@Mechazo11
Copy link
Author

@jamendezib thank you very much, I shall let you know if the issue gets resolved

@Mechazo11
Copy link
Author

Hi @jamendezib and @RomanRobotnik, robotnik_base_hw with the two .deb files provided for noetic, now builds successfully.

I will report back if any further issues arises for the robotnik_base_hw package in Noetic. Thank you very much for promptly helping us resolve this issue.

@Mechazo11
Copy link
Author

Hi @robert-ros,

Thank you very much for helping me with the build problem back in May. Presently I can build the entire catkin_ws in after carefully updating a number of packages to their Noetic version. But when trying to launch the various subsystems using ./bringup.sh or roslaunch robot_bringup robot_complete.launch I am seeing this fatal run time error.

[ERROR] [1723151172.526408854]: RobotnikBaseHW::Constructor: Error while reading joint_inputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (2), but I have read 0.
[ERROR] [1723151172.526848132]: RobotnikBaseHW::Constructor: Error while reading joint_outputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (2), but I have read 0.
[ERROR] [1723151172.527284330]: RobotnikBaseHW::Constructor: Error while reading joint_analog_inputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (2), but I have read 0.
[ INFO] [1723151172.528547095]: RobotnikBaseHW::readParam: No multiple PID's params read!
[ WARN] [1723151172.537576167]: RobotnikBaseHW::Constructor: the param motors_encoder is DEPRECATED, please use directly the param joint_encoder_resolution.
[ WARN] [1723151172.537880063]: RobotnikBaseHW::Constructor: the param motors_encoder_factor is DEPRECATED, please use directly the param joint_encoder_resolution.

I have isolated the problem the point where robot_complete.launch attempts to launch nodes from robotnik_hw_base pkg using the following

<!-- start robotnik_base_hw node -->
    <include file="$(find robot_bringup)/launch/bringup/robotnik_base_hw.launch">
      <arg name="prefix" value="$(arg prefix)"/>
      <arg name="battery_voltage_offset" value="$(arg battery_voltage_offset)"/>
    </include>

Can you help me in solving this problem?
Best regards,
@Mechazo11

@Mechazo11 Mechazo11 reopened this Aug 8, 2024
@Mechazo11
Copy link
Author

Hello,
To investigate further what the above error is I tried to launch robotnik_hw_base by itself. Shown below is the console output

robot@SXLSK-210223AB:~$ roslaunch robot_bringup robotnik_base_hw.launch 
... logging to /home/robot/.ros/log/ca92a650-5a7e-11ef-8d5c-93bd4df24cd5/roslaunch-SXLSK-210223AB-5962.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://SXLSK-210223AB:43533/

SUMMARY
========

PARAMETERS
 * /generic_hw_control_loop/cycle_time_error_threshold: 0.01
 * /generic_hw_control_loop/loop_hz: 300
 * /hardware_interface/joints: ['robot_front_rig...
 * /joint_limits/robot_back_left_wheel_joint/has_acceleration_limits: False
 * /joint_limits/robot_back_left_wheel_joint/has_effort_limits: False
 * /joint_limits/robot_back_left_wheel_joint/has_jerk_limits: False
 * /joint_limits/robot_back_left_wheel_joint/has_position_limits: False
 * /joint_limits/robot_back_left_wheel_joint/has_velocity_limits: True
 * /joint_limits/robot_back_left_wheel_joint/max_acceleration: 27.27
 * /joint_limits/robot_back_left_wheel_joint/max_velocity: 27.27
 * /joint_limits/robot_back_right_wheel_joint/has_acceleration_limits: False
 * /joint_limits/robot_back_right_wheel_joint/has_effort_limits: False
 * /joint_limits/robot_back_right_wheel_joint/has_jerk_limits: False
 * /joint_limits/robot_back_right_wheel_joint/has_position_limits: False
 * /joint_limits/robot_back_right_wheel_joint/has_velocity_limits: True
 * /joint_limits/robot_back_right_wheel_joint/max_acceleration: 27.27
 * /joint_limits/robot_back_right_wheel_joint/max_velocity: 27.27
 * /joint_limits/robot_front_left_wheel_joint/has_acceleration_limits: False
 * /joint_limits/robot_front_left_wheel_joint/has_effort_limits: False
 * /joint_limits/robot_front_left_wheel_joint/has_jerk_limits: False
 * /joint_limits/robot_front_left_wheel_joint/has_position_limits: False
 * /joint_limits/robot_front_left_wheel_joint/has_velocity_limits: True
 * /joint_limits/robot_front_left_wheel_joint/max_acceleration: 27.27
 * /joint_limits/robot_front_left_wheel_joint/max_velocity: 27.27
 * /joint_limits/robot_front_right_wheel_joint/has_acceleration_limits: False
 * /joint_limits/robot_front_right_wheel_joint/has_effort_limits: False
 * /joint_limits/robot_front_right_wheel_joint/has_jerk_limits: False
 * /joint_limits/robot_front_right_wheel_joint/has_position_limits: False
 * /joint_limits/robot_front_right_wheel_joint/has_velocity_limits: True
 * /joint_limits/robot_front_right_wheel_joint/max_acceleration: 27.27
 * /joint_limits/robot_front_right_wheel_joint/max_velocity: 27.27
 * /robotnik_base_hw/auto_restart: True
 * /robotnik_base_hw/calculate_vel_using_pose: True
 * /robotnik_base_hw/gearbox_ratio: 9.56
 * /robotnik_base_hw/joint_can_id: [1, 2, 3, 4]
 * /robotnik_base_hw/joint_home_offset: [0, 0, 0, 0]
 * /robotnik_base_hw/joint_name: ['robot_front_lef...
 * /robotnik_base_hw/joint_spin: [1, 1, -1, -1]
 * /robotnik_base_hw/joint_type: ['vel', 'vel', 'v...
 * /robotnik_base_hw/k_analog_inputs_multipliers: [16.61, -12.5, 1....
 * /robotnik_base_hw/k_battery_voltage_offset: 0.0
 * /robotnik_base_hw/motors_encoder: True
 * /robotnik_base_hw/motors_encoder_factor: 4000
 * /robotnik_base_hw/port: /dev/pcan_base
 * /robotnik_base_hw/recovery_period: 30
 * /rosdistro: noetic
 * /rosversion: 1.16.0

NODES
  /
    robotnik_base_hw (robotnik_base_hw/robotnik_base_hw_node)

auto-starting new master
process[master]: started with pid [5970]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to ca92a650-5a7e-11ef-8d5c-93bd4df24cd5
process[rosout-1]: started with pid [5980]
started core service [/rosout]
process[robotnik_base_hw-2]: started with pid [5987]
[ INFO] [1723668609.115183887]: RobotnikBaseHW::Constructor: Port: /dev/pcan_base
[ERROR] [1723668609.120209900]: RobotnikBaseHW::Constructor: Error while reading joint_inputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (4), but I have read 0.
[ERROR] [1723668609.120503262]: RobotnikBaseHW::Constructor: Error while reading joint_outputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (4), but I have read 0.
[ERROR] [1723668609.120786201]: RobotnikBaseHW::Constructor: Error while reading joint_analog_inputs_per_driver parameter. I expect to read one value (for legacy behaviour) or as much as joints are there (4), but I have read 0.
[ INFO] [1723668609.122092292]: RobotnikBaseHW::readParam: No multiple PID's params read!
[ WARN] [1723668609.128970542]: RobotnikBaseHW::Constructor: the param motors_encoder is DEPRECATED, please use directly the param joint_encoder_resolution.
[ WARN] [1723668609.129200687]: RobotnikBaseHW::Constructor: the param motors_encoder_factor is DEPRECATED, please use directly the param joint_encoder_resolution.
[ INFO] [1723668609.135047263]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[ INFO] [1723668609.237096779]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[ INFO] [1723668609.340000455]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[ INFO] [1723668609.442850362]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[ INFO] [1723668609.545602606]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[ INFO] [1723668609.648319958]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
^C[robotnik_base_hw-2] killing on exit
[ INFO] [1723668609.706190626]: RobotnikBaseHW::loadURDF: Waiting for model URDF on the ROS param server at location: /robot_description
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

I have traced the origin of the error from the binary files of robotnik_hardware_base_lib. Can you help with this error?

With best regards,
@Mechazo11

@jamendezib
Copy link
Contributor

Hi @Mechazo11,

Could you show me if possible the launch file robotnik_base_hw.launch and the yaml files that it is loading?

@Mechazo11
Copy link
Author

Hi @jamendezib

Following, in sequence, are the robotnik_base_hw.launch and the yaml files

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,
@Mechazo11

@jamendezib
Copy link
Contributor

Hi @Mechazo11

Do you also have a folder called robot_params with a file called robot_params.env or rbkairos_params.env? If so, please share the file content with me.

@Mechazo11
Copy link
Author

Mechazo11 commented Aug 20, 2024

Yes we have ros_params in /home/robot/robot_params.

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 /home/robot/catkin_ws/src/summit_packages_release/robot/summit_xl_robot/summit_xl_bringup/env/ and its contents are as follows

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants