Issue on using ethzasl_sensor_fusion with HighLevel_EKF mode

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Issue on using ethzasl_sensor_fusion with HighLevel_EKF mode

Luczia
This post was updated on .
Hello,

I did create a node that publishes a poseWithCovariance (/pose_custo) describing the pose of the pelican (computed using several sensors). The publish rate is about 15 Hz.

As far as I understand how works the asctec_mav_framework and ethzasl_sensor_fusion, it should manage to create a 1Khz fusion between IMU and my pose_custo topic. But this fusion is supposed to be processed on the HLP , so I don't really understand the point of using the ssf package.

However, I did follow the sFly tutorial for enabling PTAM/IMU pose estimation.

The pose_custo topic is maped to fcu/pose.
I also launched the node position_sensor as following:

<launch>
  
  <node name="ssf_position_sensor" pkg="ssf_updates" type="position_sensor" output="screen"  clear_params="true">

 <remap from="ssf_core/imu_state_input" to="/fcu/imu" />
 <remap from="ssf_core/correction" to="/fcu/ekf_state_in"/>
 <remap from="ssf_core/hl_state_input" to ="fcu/ekf_state_out" />
 <remap from="ssf_core/position_measurement" to="/fcu/pose"/>

  </node>  

</launch>


But the output of fcu/current_pose stay still (all values 0), even if my generated /custo_topic is tightly representative of the pelican's position.

When running the motors, the drone outputs full throttle because he believes that his position is (0,0,0) and tries to reach its target at full speed.



Also, when trying rostopic echo fcu/ekf_state_in or fcu/ekf_state_out. I get the following error:

ERROR: Cannot load message class for [sensor_fusion_comm/ExtEkf]. Are your messages built?



Do you understand why this setup doesn't work ?



For information, my Atomboard setup is:

            - Ubuntu 12.04
            - ROS hydro
            - asctec_mav_framework and ethzasl_sensor_fusion
            - a ROS NETWORK enabled with a ground base PC for data monitoring


               - state_estimation = HighLevel_EKF                
               - position_control = HighLevel  
               
Here is a rqt_graph of my setup:

rqt_graph

I would greatly appreciate your help on this issue!!

Thanks,

Lucas
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Issue on using ethzasl_sensor_fusion with HighLevel_EKF mode

Luczia
The  
ERROR: Cannot load message class for [sensor_fusion_comm/ExtEkf]. Are your messages built? 

came from the fact that I was doing a
 rostopic echo ssf_core/state_out
 on the ground station (where the ssf package was not correctly compiled). Now it does work on the pelican. (I get no error, just a blank line in the terminal).

Thanks to few remarks from this github thread, I did some remapping and get the rqt_graph below.

However, when trying
 rostopic echo ssf_core/pose
 no pose message is displayed, just a blank line in the terminal.

There still must be some mistake in the config but I can't figure out which one.

Here is the rqt_graph:

rqt_graph

Any idea?

Thanks.
Loading...