mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-29 22:39:33 +00:00
Use rangefinder/range for rangefinder data (remapped in mavros side)
This commit is contained in:
@@ -56,9 +56,8 @@
|
||||
<node name="tf2_web_republisher" pkg="tf2_web_republisher" type="tf2_web_republisher" output="screen" if="$(arg rosbridge)"/>
|
||||
|
||||
<!-- vl53l1x ToF rangefinder -->
|
||||
<node name="vl53l1x" pkg="vl53l1x" type="vl53l1x_node" output="screen" if="$(arg rangefinder_vl53l1x)">
|
||||
<node name="rangefinder" pkg="vl53l1x" type="vl53l1x_node" output="screen" if="$(arg rangefinder_vl53l1x)">
|
||||
<param name="frame_id" value="rangefinder"/>
|
||||
<remap from="~range" to="mavros/distance_sensor/rangefinder_sub"/> <!-- redirect data to FCU -->
|
||||
</node>
|
||||
|
||||
<!-- rc backend -->
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<arg name="gcs_bridge" default="tcp"/>
|
||||
<arg name="viz" default="true"/>
|
||||
<arg name="respawn" default="true"/>
|
||||
<arg name="distance_sensor_remap" default="rangefinder/range"/>
|
||||
|
||||
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" unless="$(eval fcu_conn == 'none')" respawn_delay="1" output="screen">
|
||||
<!-- UART connection -->
|
||||
@@ -27,6 +28,9 @@
|
||||
<!-- basic params -->
|
||||
<rosparam command="load" file="$(find clever)/launch/mavros_config.yaml"/>
|
||||
|
||||
<!-- remap rangefinder -->
|
||||
<remap from="mavros/distance_sensor/rangefinder_sub" to="rangefinder/range"/>
|
||||
|
||||
<rosparam param="plugin_whitelist">
|
||||
- altitude
|
||||
- command
|
||||
@@ -52,6 +56,14 @@
|
||||
</rosparam>
|
||||
</node>
|
||||
|
||||
<!-- remapped distance_sensor config -->
|
||||
<rosparam param="$(arg distance_sensor_remap)" if="$(eval bool(distance_sensor_remap))">
|
||||
subscriber: true
|
||||
id: 1
|
||||
orientation: PITCH_270
|
||||
covariance: 1 # cm
|
||||
</rosparam>
|
||||
|
||||
<!-- Rangefinders frame -->
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="rangefinder_frame" args="0 0 -0.05 0 1.5707963268 0 base_link rangefinder"/>
|
||||
|
||||
|
||||
@@ -77,9 +77,6 @@ distance_sensor:
|
||||
field_of_view: 0.5
|
||||
rangefinder_sub:
|
||||
subscriber: true
|
||||
id: 1
|
||||
orientation: PITCH_270
|
||||
covariance: 1 # cm
|
||||
|
||||
# fake_gps
|
||||
fake_gps:
|
||||
|
||||
@@ -547,7 +547,7 @@ def check_rangefinder():
|
||||
# TODO: check FPS!
|
||||
rng = False
|
||||
try:
|
||||
rospy.wait_for_message('mavros/distance_sensor/rangefinder_sub', Range, timeout=4)
|
||||
rospy.wait_for_message('rangefinder/range', Range, timeout=4)
|
||||
rng = True
|
||||
except rospy.ROSException:
|
||||
failure('no rangefinder data from Raspberry')
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Working with a laser rangefinder
|
||||
|
||||
> **Note** Documentation for the [image](image.md), versions, starting with **0.18**. For older versions refer to [documentation for version **0.17**](https://github.com/CopterExpress/clever/blob/v0.17/docs/en/laser.md).
|
||||
|
||||
## VL53L1X Rangefinder
|
||||
|
||||
The rangefinder model recommended for Clever is STM VL53L1X. This rangefinder can measure distances from 0 to 4 m while ensuring high measurement accuracy.
|
||||
@@ -37,10 +39,10 @@ If the pin marked GND is occupied, you can use any other ground pin (look at the
|
||||
<arg name="rangefinder_vl53l1x" default="true"/>
|
||||
```
|
||||
|
||||
By default, the rangefinder driver sends the data to Pixhawk via the `/mavros/distance_sensor/rangefinder_sub` topic. To view data from the topic, use the following command:
|
||||
By default, the rangefinder driver sends the data to Pixhawk via the `/rangefinder/range` topic. To view data from the topic, use the following command:
|
||||
|
||||
```bash
|
||||
rostopic echo mavros/distance_sensor/rangefinder_sub
|
||||
rostopic echo /rangefinder/range
|
||||
```
|
||||
|
||||
### PX4 settings
|
||||
@@ -69,7 +71,7 @@ def range_callback(msg):
|
||||
# Process data from the rangefinder
|
||||
print 'Rangefinder distance:', msg.range
|
||||
|
||||
rospy.Subscriber('mavros/distance_sensor/rangefinder_sub', Range, range_callback)
|
||||
rospy.Subscriber('rangefinder/range', Range, range_callback)
|
||||
```
|
||||
|
||||
### Data visualization
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Работа с лазерным дальномером
|
||||
|
||||
> **Note** Документация для версий [образа](image.md), начиная с **0.18**. Для более ранних версий см. [документацию для версии **0.17**](https://github.com/CopterExpress/clever/blob/v0.17/docs/ru/laser.md).
|
||||
|
||||
## Дальномер VL53L1X
|
||||
|
||||
Рекомендуемая для Клевера модель дальномера – STM VL53L1X. Это дальномер может измерять расстояния от 0 до 4 м, при этом обеспечивая высокую точность измерений.
|
||||
@@ -37,10 +39,10 @@
|
||||
<arg name="rangefinder_vl53l1x" default="true"/>
|
||||
```
|
||||
|
||||
По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/mavros/distance_sensor/rangefinder_sub`). Для просмотра данных из топика используйте команду:
|
||||
По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/rangefinder/range`). Для просмотра данных из топика используйте команду:
|
||||
|
||||
```bash
|
||||
rostopic echo mavros/distance_sensor/rangefinder_sub
|
||||
rostopic echo /rangefinder/range
|
||||
```
|
||||
|
||||
### Настройки PX4
|
||||
@@ -69,7 +71,7 @@ def range_callback(msg):
|
||||
# Обработка новых данных с дальномера
|
||||
print 'Rangefinder distance:', msg.range
|
||||
|
||||
rospy.Subscriber('mavros/distance_sensor/rangefinder_sub', Range, range_callback)
|
||||
rospy.Subscriber('rangefinder/range', Range, range_callback)
|
||||
```
|
||||
|
||||
### Визуализация данных
|
||||
|
||||
Reference in New Issue
Block a user