ethz-asl / asctec_mav_framework

Framework for data aquisition and position control to be used with the highlevel processor of Ascending Technologies helicopters
http://www.ros.org/wiki/asctec_mav_framework
37 stars 40 forks source link

Flying with vicon #22

Closed limhyon closed 9 years ago

limhyon commented 10 years ago

Hi, Now I can run properly. I'd like to test position controller with vicon information. To this end, I'm thinking to use vicon_bridge from https://github.com/ethz-asl/ros-drivers. But it seems publishing PoseStamped, not PoseWithCovarianceStampled. How do I fly the firefly with vicon_bride + asctec_mav_framework to test?

markusachtelik commented 10 years ago

hi,

first, I suggest to use https://github.com/ethz-asl/vicon_bridge which is also catkinized and contains an updated vicon driver. There is no PoseStamped subscriber in asctec_mav_framework unfortunately. You could quickly implement one in ssdk_inteface.cpp (and then open a PR please ;) ) or you just listen to the appropriate tf transform that vicon_bridge provides. For that, you need to set these parameters:

~ssdk/listen_on_tf (bool, default: True) Enables listening on tf transforms for position updates for the state estimation on the HLP. ~ssdk/tf_ref_frame_id (str, default: world) tf reference frame. ~ssdk/tf_tracked_frame_id (str, default: pelican) tf frame of the helicopter.

limhyon commented 10 years ago

Thanks Markus. I've cloned new vicon_bridge, which is great. I'll choose to listen to the appropriate tf transform instead PoseWithCovStamped.

I can see that my vicon_bridge outputs

$rosrun tf tf_monitor Frame: vicon/stella1/stella1 published by /vicon Average Delay: 0.000482962 Max Delay: 0.000859746 ...

Does this means following modification of ssdk_parameters.yaml?

ssdk/tf_ref_frame_id: world ssdk/tf_tracked_frame_id: vicon/stella1/stella1

How about these (fcu_parameters.yaml)?

fcu/state_estimation: off fcu/position_control: off

markusachtelik commented 10 years ago

please have a look at the tutorial: http://wiki.ros.org/asctec_hl_interface/Tutorials/hlp%20position%20control

limhyon commented 10 years ago

I had a first flight with vicon + asctec_mav_framework. It works. However, the problem I had was that the asctec_hl_interface app crashed several times. The error message was : ROS_FATAL("Could not send SSDK parameters to the HLP! Shutting down the node");

I used Xbee with low-frequency data receiving for bandwidth. Does this a problem?

markusachtelik commented 10 years ago

great! I'm actually surprised it worked at all with the xbee. If you need to use xbee, we recommend using two pairs, one for rx and one for tx, as discussed here: http://asctec-users.986163.n3.nabble.com/Using-asctec-mav-framework-with-xbee-td4024529.html

there are also xbee wifi to serial modules available, with much higher transmit rates. We have no experience with these, but it would be interesting how they work.

limhyon commented 10 years ago

Hi, I'm using Firefly + Mastermind for now. But the Mastermind has been attached to the Firefly. However, no manual for mounting Mastermind on Firefly found. Could you point out a link for this? Also, http://www.asctec.de/assets/Downloads/Manuals/AscTec-Autopilot-Manual-v10.pdf <= this does not work. The link was found in http://wiki.ros.org/asctec_hl_interface?distro=hydro#Serial_Connection_to_the_Highlevel_Processor.

Also, I haven't got any cable between Autopilot and Mastermind. Is it contained in the package?

limhyon commented 10 years ago

I mounted and connected mastermind to autopilot board. Works nicely.

By the way, the position controller looks generated from Simulink model. Where can I download the Simulink model of it to generate code by myself?