ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

bluehash's profile - activity

2023-06-23 15:20:23 -0500 asked a question ros2_control temperature sensor broadcaster

ros2_control temperature sensor broadcaster I have setup a hardware interface to read/write to a robot base. The base ha

2023-04-13 07:50:46 -0500 asked a question Handling sensor timeouts/disconnects in ROS2

Handling sensor timeouts/disconnects in ROS2 We have a couple of sensors, some come under sensor_msgs, some are custom.

2019-02-20 04:14:56 -0500 received badge  Famous Question (source)
2018-12-02 12:05:00 -0500 received badge  Famous Question (source)
2018-10-16 07:20:02 -0500 received badge  Good Answer (source)
2018-08-08 01:39:06 -0500 marked best answer Indoor GPS with Navsat_transform

I have a set of Marvelmind robotics indoor GPS beacons and have it setup with pose data(no yaw, only x,y) published on a topic with msg type: nav_msgs::Odometry

Is there a way to get this works with the Navsat transform? UTM co-ordinates are not used here.

Is this the route to go:

  1. One instance of robot_localization with continuous sensors, in odom_frame.
  2. Second instance of robot_localization with output of (1.) + GPS(pose0) in map frame

I'm using this documentation as a reference. Thanks.

2018-07-09 13:59:57 -0500 received badge  Nice Answer (source)
2018-04-29 22:11:32 -0500 marked best answer Diff_drive_controller - Question on RK function

Hello, In the diff_drive_controller plugin: https://github.com/ros-controls/ros_c...

What does the below line do? What is the 0.5 for?

const double direction = heading_ + angular * 0.5

The RK2 function is called when angular velocities are less than 1e-6 rads,

2018-04-29 22:10:38 -0500 received badge  Famous Question (source)
2018-01-02 03:19:41 -0500 received badge  Notable Question (source)
2018-01-02 03:19:41 -0500 received badge  Popular Question (source)
2017-11-26 17:24:11 -0500 marked best answer Parse error when using a xacro property loaded through a yaml file.

Environment: Ubuntu 16, ROS Kinetic.

I have a robot_parameters.yaml file with robot parameters: wheel_separation : 0.235 PI : 3.142

In a xacro file I have:

<?xml version="1.0"?>
<robot name="robot_name" xmlns:xacro="http://ros.org/wiki/xacro">
  <xacro:property name="PI" value="${load_yaml('robot_parameters.yaml')}" />

  <link name="left_front_wheel_link">
    <visual>
      <origin xyz="0.123 0.456 0.101" rpy="${PI/2} 0 0" />
      <geometry>
        <cylinder radius="0.101" length = "0.0254"/>
      </geometry>
    </visual>
  </link>
</robot>

When I do a --check-order on the xacro, I get the following error:

unsupported operand type(s) for /: 'dict' and 'int' 
when evaluating expression 'PI/2'
XacroException(None,)

How would I use an imported name(in this case, PI) via yaml and use it for xacro calculations.

2017-09-13 11:20:17 -0500 received badge  Student (source)
2017-09-13 11:18:50 -0500 received badge  Self-Learner (source)
2017-09-13 11:18:48 -0500 received badge  Famous Question (source)
2017-06-30 17:52:27 -0500 marked best answer CMake warning on ${Boost_INCLUDE_DIRS}

I'm unable to get rid of include directory warnings during a catkin_make.

One of my packages is dependent on boost. I made sure to use find_package so that the include dirs variables get populated, but still get warnings during a build...although boost is discovered during the build. See warning at the end of the post. Thanks.

cmake_minimum_required(VERSION 2.8.3)
project(test)

# search for everything we need to build the package
find_package(catkin REQUIRED COMPONENTS
  roscpp
  sensor_msgs
  std_msgs
)

# since we need boost search it as well
# find_package makes the ${..._INCLUDE_DIRS} ${..._LIBRARIES} variables we use later
find_package(Boost REQUIRED COMPONENTS system thread)

# export the dependencis of this package for who ever depends on us
catkin_package(
  INCLUDE_DIRS include
  CATKIN_DEPENDS roscpp sensor_msgs std_msgs 
  DEPENDS boost
)

# tell catkin where to find the headers for this project
include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})

# make the executables
add_executable( test_node src/test.cpp )

add_dependencies( test_node   ${catkin_EXPORTED_TARGETS} )

target_link_libraries( test_node  ${catkin_LIBRARIES} ${Boost_LIBRARIES} )

Warning:

-- +++ processing catkin package: 'test'
-- ==> add_subdirectory(test)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   thread
--   chrono
--   date_time
--   atomic
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
  catkin_package() DEPENDS on 'boost' but neither 'boost_INCLUDE_DIRS' nor
  'boost_LIBRARIES' is defined.
2017-06-29 07:49:26 -0500 received badge  Famous Question (source)
2017-05-30 07:26:37 -0500 received badge  Famous Question (source)
2017-05-04 13:48:43 -0500 received badge  Notable Question (source)
2017-05-04 07:26:20 -0500 commented question /set_pose issue

Please see answer here.

2017-05-04 07:24:46 -0500 commented answer Indoor GPS with Navsat_transform

A little confused with the documentation here and what you said. Do I still use two state estimation nodes? The GPS is d

2017-05-04 06:58:00 -0500 received badge  Popular Question (source)
2017-05-02 10:39:33 -0500 asked a question Indoor GPS with Navsat_transform

Indoor GPS with Navsat_transform I have a set of Marvelmind robotics indoor GPS beacons and have it setup with pose data

2017-05-02 10:25:44 -0500 commented question robot_localization ignores pose topic

Could it be that your world_frame in robot_localization_collaborative.yaml should be set to the map_frame and not odom.

2017-05-02 10:25:02 -0500 commented question robot_localization ignores pose topic

Could it be that your world_frame in robot_localization_collaborative.yaml should be set to the map_frame and not odom.

2017-05-02 07:48:51 -0500 commented answer Help initializing EKF to a set position

Thanks Tom!

2017-04-27 11:21:13 -0500 commented question Unable to /set_pose if odom0_differential = false

Please see answer here: http://answers.ros.org/question/258491/help-initializing-ekf-to-a-set-position/?answer=258964#po

2017-04-15 20:41:31 -0500 received badge  Notable Question (source)
2017-04-11 04:12:02 -0500 received badge  Notable Question (source)
2017-04-07 19:30:57 -0500 received badge  Good Answer (source)
2017-04-04 07:41:57 -0500 commented question Help initializing EKF to a set position

I've added data to the bottom of my pose. I've made w=1. I usually press tab after /set_pose and was not paying attention to orientation. The default is 0. This is a controlled test with sensor data(odom+imu) streaming into the EKF. I see the EKF latching to the /set_pose value and not change.

2017-04-04 07:41:56 -0500 received badge  Popular Question (source)
2017-04-03 13:50:57 -0500 asked a question Help initializing EKF to a set position

I had asked this question a while back, but received no response. Hopefully the revised subject line and info helps me come to a solution.

I'm running the latest robot_localization package on Kinetic/Ubuntu 16.

For testing certain functions of the vehicle, we would like to place the vehicle at a certain point in the map(which is already generated and published). To initialize the EKF to a location, I use the /set_pose rosservice call, which works IF odom0_differential=true. /set_pose does not work if odom0_differential=false. There is a tiny blip on the EKF output to the set location, but then the EKF starts at 0 again.

There are two sensors currently providing Pose data. The odometry(/odom) from wheel encoders and imu yaw(imu/data).

The EKF is setup as follows. Everything else is set to default.

map_frame: map              # Defaults to "map" if unspecified
odom_frame: odom            # Defaults to "odom" if unspecified
base_link_frame: base_link  # Defaults to "base_link" if unspecified
world_frame: odom           # Defaults to the value of odom_frame if unspecified

odom0: /odom
imu0:  /imu/data

odom0_config: [true,  true,  false,          
               false, false, true,
               false, false, false,
               false, false, false,
               false, false, false]

imu0_config:  [false, false,  false,
               false, false,  true,
               false, false,  false,
               false, false,  true,
               false, false,  false]

odom0_differential: false
imu0_differential:  false

odom0_relative: true
imu0_relative:  true

Rossservice call, initializing EKF to (1,1):

rosservice call --wait /set_pose "pose:
  header:
    seq: 0
    stamp:
      secs: 0
      nsecs: 0
    frame_id: odom
  pose:
    pose:
      position: {x: 1.0, y: 1.0, z: 0.0}
      orientation: {x: 0.0, y: 0.0, z: 0.0, w: 0.0}
    covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]"

Edit(April 4th, 2017, 8:15AM): I've stripped my vehicle bag file to a new bag file called ekfTest.bag, with just odom+imu+tf data - Download. This bag contains /tf, /odom and /imu/data topics. Please note that I've turned off "publish_tf" in the EKF parameters as the bag file already has this /tf data.

I've also attached my ekf parameter file(ekf_template.yaml) and launch file.

  1. Start the robot_localization node with the parameter file. 2.Open a window to view EKF data: rostopic echo /odometry/filtered/pose/pose/position 3.Run the bag file: rosbag play ekfTest.bag
  2. Set pose: rosservice call /set_pose "pose: header: seq: 0 stamp: now frame_id: odom pose: pose: position: {x: 1.0, y: 1.0, z: 0.0} orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0} covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ...
(more)
2017-03-15 13:05:42 -0500 asked a question Unable to /set_pose if odom0_differential = false

Hello,

I have two sensors - odometry(wheel encoders) and an IMU for localization. The EKF params are as below:

odom0: /odom
imu0:  /imu/data

odom0_config: [true,  true,  false,          
               false, false, true,
               false, false, false,
               false, false, false,
               false, false, false]

imu0_config:  [false, false,  false,
               false, false,  true,
               false, false,  false,
               false, false,  true,
               false, false,  false]

odom0_differential: false
imu0_differential:  false

odom0_relative: true
imu0_relative:  true

If I need to initialize the filter, at say (1,2), I issue a /set_pose service call with a frame_id = odom. This only works if odom0_differential = true.

The odometry is pure pose(x,y and yaw) and IMU yaw is calculated via the complimentary filter. From what I understand, setting the differential term to true causes the odometry to be differentiated and then integrated to get the same pose value. How do I initialize the filter at a location, with odom0_differential = false.

Thanks.

2017-03-15 03:52:30 -0500 received badge  Notable Question (source)
2017-03-08 05:42:08 -0500 received badge  Famous Question (source)
2017-02-27 09:47:16 -0500 received badge  Nice Answer (source)
2017-01-26 02:55:33 -0500 received badge  Popular Question (source)