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

ShehabAldeen's profile - activity

2023-09-27 13:58:17 -0500 received badge  Popular Question (source)
2023-09-27 13:58:17 -0500 received badge  Famous Question (source)
2023-09-27 13:58:17 -0500 received badge  Notable Question (source)
2023-05-04 20:15:55 -0500 received badge  Famous Question (source)
2023-05-04 20:15:55 -0500 received badge  Notable Question (source)
2023-05-04 20:15:55 -0500 received badge  Popular Question (source)
2022-10-12 04:43:08 -0500 marked best answer [robot_localization] high pose drift with only IMU data

Hello,

I am trying to make use of the robot_localization package in order to estimate the position of my robot, unfortunately I have only IMU data of type sensor_msgs/imu.

I tried to configure the package to my situation with imu topic and Icouldn't get reasonable values. I am getting drift in thousands after minutes of running this launch file

<launch>
  <node pkg="robot_localization" type="ekf_localization_node" name="ekf_se" clear_params="true">
    <rosparam command="load" file="$(find ghattas_localization)/params/ekf.yaml" />

  </node>
</launch>

yaml parameters file as following

frequency: 30
sensor_timeout: 0.1
two_d_mode: false
print_diagnostics: true #echo the /diagnostics_agg topic for details

## IMU 0

imu0: /mavros/imu/data
odom_frame: odom_fil            # Defaults to "odom" if unspecified

imu0_config: [false, false, false,
              true,  true,  true,
              false, false, false,
              true,  true,  true,
              true,  true,  true]
imu0_nodelay: false
imu0_differential: false
imu0_relative: true
imu0_queue_size: 5
imu0_pose_rejection_threshold: 0.8                 # Note the difference in parameter names
imu0_twist_rejection_threshold: 0.8                #
imu0_linear_acceleration_rejection_threshold: 0.8  #

# [ADVANCED] Some IMUs automatically remove acceleration due to gravity, and others don't. If yours doesn't, please set
# this to true, and *make sure* your data conforms to REP-103, specifically, that the data is in ENU frame.
imu0_remove_gravitational_acceleration: true

this is the output of my imu sensor

header: 
  seq: 76883
  stamp: 
    secs: 1553471696
    nsecs: 643437952
  frame_id: "base_link"
orientation: 
  x: -0.00401678876775
  y: 0.00692985006211
  z: 0.18002671006
  w: -0.983629110108
orientation_covariance: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
angular_velocity: 
  x: 0.00155547540635
  y: 0.000273763580481
  z: 0.00184202415403
angular_velocity_covariance: [1.2184696791468346e-07, 0.0, 0.0, 0.0, 1.2184696791468346e-07, 0.0, 0.0, 0.0, 1.2184696791468346e-07]
linear_acceleration: 
  x: 0.06864655
  y: -0.08825985
  z: 9.77723005
linear_acceleration_covariance: [8.999999999999999e-08, 0.0, 0.0, 0.0, 8.999999999999999e-08, 0.0, 0.0, 0.0, 8.999999999999999e-08]
---

and this is the output of the topic /odometry/filtered after mintues of running the launch file mentioned above

header: 
  seq: 85355
  stamp: 
    secs: 1553471740
    nsecs: 522055387
  frame_id: "odom_fil"
child_frame_id: "base_link"
pose: 
  pose: 
    position: 
      x: 5931.45757968
      y: -524851.96709
      z: -83022.4001185
    orientation: 
      x: -3.09389446171e-05
      y: -0.00255077454028
      z: 0.0352035710502
      w: 0.999376906466
  covariance: [123428762.20239958, 14303.125278606882, -432994.46126881544, -0.1112066300728559, -2.6491734572265484, 16.50020719493778, 14303.125278592377, 117327753.84775318, -978791.8404554238, 2.6481353764573927, -0.19240492653648597, -0.17084136219435272, -432994.4612687591, -978791.8404553946, 193571512.2978465, -16.679576436670256, 1.385559988732174, 0.0005322252938017805, -0.11120663007285585, 2.648135376457387, -16.679576436670246, 0.03404565909294526, 7.622682310836132e-10, -7.402346050531404e-07, -2.6491734572265524, -0.1924049265364862, 1.3855599887321741, 7.622682310838457e-10, 0.03404565076858593, 1.2813554639653757e-07, 16.50020719493774, -0.1708413621943528, 0.0005322252938017805, -7.402346050531408e-07, 1.2813554639653757e-07, 0.04780378874325498]
twist: 
  twist: 
    linear: 
      x: -35.3374913315
      y: -431.961762545
      z: -68.7201530547
    angular: 
      x: 0.000821793150427
      y: 0.00030448779041
      z: 0.00136453106476
  covariance: [60.3615155475993, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 60.3615155475993, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 96.5658004680656, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2180987398690317e-07, -2.4508723486153523e-30 ...
(more)
2021-08-18 10:05:23 -0500 received badge  Famous Question (source)
2021-07-12 18:08:44 -0500 asked a question building a ROS1 node that depends on a shared precompiled library

building a ROS1 node that depends on a shared precompiled library Hello, this may be an easy question for the CMake exp

2021-07-12 18:04:55 -0500 marked best answer how to access the msg in the subscriber callback in ros2 rclpy

Hello,

I am trying to run the following ros2 node. however, it seems that I cannot access the msg inside the callback function.

import rclpy
from rclpy.node import Node

import time
from std_msgs.msg import String


class MinimalSubscriber(Node):

    def __init__(self):
        super().__init__('minimal_subscriber')
        self.subscription = self.create_subscription(
            String,
            'topic',
            self.listener_callback,
            10)
        self.subscription  # prevent unused variable warning
        self.topub = 0

    def listener_callback(self, msg):
        self.topub = msg.data

    def printmsg (self):
        while True:
            self.get_logger().info('I heard: "%s"' % self.topub)
            time.sleep(0.5)

def main(args=None):
    rclpy.init(args=args)

    minimal_subscriber = MinimalSubscriber()
    minimal_subscriber.printmsg()

    rclpy.spin(minimal_subscriber)


if __name__ == '__main__':

    main()

if anyone has a clue, please help.

Thank you

2021-07-04 14:50:40 -0500 received badge  Notable Question (source)
2021-06-30 09:23:43 -0500 received badge  Popular Question (source)
2021-06-28 08:16:47 -0500 commented question how to access the msg in the subscriber callback in ros2 rclpy

actually I want to have acess to the msg subscribed within a loop.

2021-06-28 08:15:39 -0500 commented question how to access the msg in the subscriber callback in ros2 rclpy

Yes, the topic is published

2021-06-27 18:04:35 -0500 asked a question how to access the msg in the subscriber callback in ros2 rclpy

how to access the msg in the subscriber callback in ros2 rclpy Hello, I am trying to run the following ros2 node. howev

2021-06-24 10:39:41 -0500 received badge  Notable Question (source)
2021-06-24 10:39:41 -0500 received badge  Famous Question (source)
2021-06-22 12:35:53 -0500 marked best answer big delay between publisher and subscriber !

I made a package to control the nao robot using the Emotic EPOC+ EEG sensor to drive the robot depends on the facial expressions

basically my package consist of two nodes 1- Publisher : which read the values coming from the sensor using the Emotiv SDK and then publish which expression I am doing with my face in a topic named /emoState

2- Subscriber : which read from that topic and give the commands to the nao robot using its SDK

the problem is my publisher is too fast and so the subscriber is taking the values which are published like a 20 seconds or 40 seconds ago, I want it to take the value in the time I making the expression

any clue ? where could be the problem

2020-07-07 15:08:46 -0500 received badge  Good Question (source)
2019-09-26 12:50:55 -0500 received badge  Famous Question (source)
2019-09-16 01:26:58 -0500 received badge  Famous Question (source)
2019-09-16 01:26:58 -0500 received badge  Notable Question (source)
2019-06-09 15:14:28 -0500 commented answer how to change robot's movemetns directions in the odometry frame

do you suggest to do that with a static transfrom publisher? or what is the best way to do it?

2019-06-09 14:00:48 -0500 received badge  Popular Question (source)
2019-06-08 21:16:56 -0500 edited question how to change robot's movemetns directions in the odometry frame

how to change robot's movemetns directions in the odometry frame Hello, I am trying to use the navigation stack into my

2019-06-08 21:15:57 -0500 edited question how to change robot's movemetns directions in the odometry frame

how to change robot's movemetns directions in the odometry frame Hello, I am trying to use the navigation stack into my

2019-06-08 21:15:01 -0500 asked a question how to change robot's movemetns directions in the odometry frame

how to change robot's movemetns directions in the odometry frame Hello, I am trying to use the navigation stack into my

2019-05-20 02:21:58 -0500 marked best answer error while trying to use rviz to visualize the urdf

I am trying to use the rviz package to visualize the urdf I had made using a launch file

but every time I am trying to roslaunch my launch file give me this error

I have double checked every thing but the error still appear

 roslaunch mastering_ros_robot_description_pkg view_demo.launch
[view_demo.launch] is neither a launch file in package [mastering_ros_robot_description_pkg] nor is [mastering_ros_robot_description_pkg] a launch file name
The traceback for the exception was written to the log file
2019-05-15 04:14:51 -0500 received badge  Famous Question (source)
2019-04-14 18:24:30 -0500 asked a question mavros disarm whenever publishing to rc/override

mavros disarm whenever publishing to rc/override Hello, I am using mavros installed on a laptop and I have my pixhawk c

2019-04-11 15:27:56 -0500 received badge  Notable Question (source)
2019-04-08 05:18:29 -0500 received badge  Popular Question (source)
2019-04-07 19:42:03 -0500 asked a question problem configuring robot localization

problem configuring robot localization Hello, I am trying to use the robot localization package into my underwater rob

2019-04-01 05:57:20 -0500 received badge  Famous Question (source)
2019-03-27 23:46:05 -0500 received badge  Famous Question (source)
2019-03-25 19:16:31 -0500 commented answer [robot_localization] high pose drift with only IMU data

Actually I don't have that much experience on how to configure covariances

2019-03-25 15:41:02 -0500 commented answer [robot_localization] high pose drift with only IMU data

shall I show you another IMU msg you mean?

2019-03-25 04:28:53 -0500 received badge  Notable Question (source)
2019-03-25 04:24:59 -0500 commented answer [robot_localization] high pose drift with only IMU data

The IMU gives orientation, linear acceleration, and angular velocity in my case. The thing is I can not provide odometr

2019-03-25 00:38:32 -0500 received badge  Popular Question (source)
2019-03-24 18:58:57 -0500 asked a question [robot_localization] high pose drift with only IMU data

[robot_localization] high pose drift with only IMU data Hello, I am trying to make use of the robot_localization packag

2019-03-24 18:48:05 -0500 commented question problem while running the smach_viewer

I couldn't find a solution unfortunately. But it works fine on Ubuntu 16.04

2019-03-14 14:35:06 -0500 received badge  Famous Question (source)
2019-03-01 16:33:43 -0500 marked best answer interfacing hardware with diff_drive_controller

Hello,

I am building a differential drive robot and I want to exploit the power of the diff_drive_controller

but I have faced a couple of problems to interface my hardware to the controller I am using a tiva c launchpad as my embedded board but the real problem is, where can I get the velocity output of each wheel from the controller then I can transfer it with the appropriate method to the motors?

2019-03-01 16:31:44 -0500 marked best answer rosserial [ERROR] lost sync with device, restarting ...

Hello I am building a differential drive robot using differential_drive package and rosserial_tivac to interface with my hardware I have written my codes and iclude them all in one launch file when i use roslaunch every thing is working fine and the following message appear in terminal

process[rosout-1]: started with pid [11918]
started core service [/rosout]
process[serial_gate_node-2]: started with pid [11935]
process[lpid_velocity-3]: started with pid [11936]
process[rpid_velocity-4]: started with pid [11937]
process[twist_to_motors-5]: started with pid [11938]
[INFO] [1534898274.948213]: ROS Serial Python Node
[INFO] [1534898274.952975]: Connecting to /dev/ttyACM0 at 57600 baud
[INFO] [1534898274.997246]: /twist_to_motors started
[INFO] [1534898277.081039]: Note: publish buffer size is 512 bytes
[INFO] [1534898277.081769]: Setup publisher on lwheel [std_msgs/Int16]
[INFO] [1534898277.093732]: Setup publisher on rwheel [std_msgs/Int16]
[INFO] [1534898277.111318]: Note: subscribe buffer size is 512 bytes
[INFO] [1534898277.112105]: Setup subscriber on lmotor_cmd [std_msgs/Float32]
[INFO] [1534898277.126081]: Setup subscriber on rmotor_cmd [std_msgs/Float32]

Then when I try to publish a msg to the topic /twist that supposes to drive the robot. The motors start operating in the right direction but with a full speed which possibly means they didn't get the proper PWM value and I am getting the following info appearing on my terminal

[INFO] [1534898288.361617]: wrong checksum for topic id and msg
[ERROR] [1534898302.098102]: Lost sync with device, restarting...

the codes witch I am using is from this repository if any one can help please

2019-02-27 04:35:53 -0500 received badge  Famous Question (source)
2019-01-20 09:39:38 -0500 received badge  Famous Question (source)
2019-01-09 16:32:20 -0500 received badge  Nice Question (source)
2019-01-09 16:29:21 -0500 received badge  Famous Question (source)