Skip to content

Commit

Permalink
Add evo 40 and 15 m
Browse files Browse the repository at this point in the history
  • Loading branch information
Babtou67 committed Mar 10, 2021
1 parent be8c4ed commit bfe7333
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 12 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ If it's not available for your distribution, clone https://github.com/wjwwood/se

## Running TeraRanger Hub Evo & Tower Evo

**TeraRanger Hub Evo/Tower Evo** uses **TeraRanger Evo 60m**, **TeraRanger Evo 600Hz** or **TeraRanger Evo 3m** sensors for the distance measurements. To use them please run **teraranger_evo** node.
**TeraRanger Hub Evo/Tower Evo** uses **TeraRanger Evo 60m**, **TeraRanger Evo 40m**, **TeraRanger Evo 15m**, **TeraRanger Evo 600Hz** or **TeraRanger Evo 3m** sensors for the distance measurements. To use them please run **teraranger_evo** node.

After your workspace is built and sourced:
If you are using **USB**:
Expand Down Expand Up @@ -83,7 +83,7 @@ You can change the operating mode of the sensors by running **rqt_reconfigure**:
rosrun rqt_reconfigure rqt_reconfigure
```

**IMPORTANT: Please notice that for the Hub Evo you are able to set the sensor type of each sensor (Evo 60m, Evo 600Hz, Evo 3m or Evo Mini) with a dynamic_reconfigure for each port**
**IMPORTANT: Please notice that for the Hub Evo you are able to set the sensor type of each sensor (Evo 60m, Evo 40m, Evo 15m, Evo 600Hz, Evo 3m or Evo Mini) with a dynamic_reconfigure for each port**

By default sensors are set to Evo 60m type.

Expand Down
20 changes: 11 additions & 9 deletions cfg/TerarangerHubEvo.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,23 @@ imu_enum = gen.enum([gen.const("OFF", int_t, 0, "IMU disabled"),
sensor_type_enum = gen.enum([gen.const("EVO_600HZ", int_t, 0, "Evo 600 Hz"),
gen.const("EVO_60M", int_t, 1, "Evo 60 m"),
gen.const("EVO_3M", int_t, 2, "Evo 3 m"),
gen.const("EVO_MINI", int_t, 3, "Evo Mini")],
gen.const("EVO_MINI", int_t, 3, "Evo Mini"),
gen.const("EVO_40M", int_t, 4, "Evo 40 m"),
gen.const("EVO_15M", int_t, 5, "Evo 15 m")],
"Set the type of the sensor")


gen.add("Output_Mode", int_t, 0, "Set the output mode", 0, 0, 1, edit_method=output_mode_enum)
gen.add("Rate", int_t, 1, "Set the rate", 0, 0, 5, edit_method=rate_enum)
gen.add("IMU_mode", int_t, 2, "Set imu mode", 0, 0, 3, edit_method=imu_enum)
gen.add("Sequence_mode", int_t, 3, "Set the firing sequence", 0, 0, 2, edit_method=sequence_mode_enum)
gen.add("Sensor_type_port_0", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_1", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_2", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_3", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_4", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_5", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_6", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_7", int_t, 4, "Set the sensor type", 1, 0, 3, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_0", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_1", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_2", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_3", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_4", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_5", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_6", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)
gen.add("Sensor_type_port_7", int_t, 4, "Set the sensor type", 1, 0, 5, edit_method=sensor_type_enum)

exit(gen.generate(PACKAGE, "teraranger_evo_cfg", "TerarangerHubEvo"))
3 changes: 3 additions & 0 deletions include/teraranger_array/teraranger_evo.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
#define EVO_3M_MIN 0.1
#define EVO_MINI_MIN 0.03
#define EVO_MINI_MAX 3.3
#define EVO_40M_MAX 40.0
#define EVO_15M_MAX 15.0


#define ACK_LENGTH 4
#define ACK_HEADER 0x30
Expand Down
2 changes: 1 addition & 1 deletion launch/hub_evo_60m_example.launch
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<param name="Sequence_mode" value="1" />
<!-- Set the IMU mode 0=OFF, 1=QUAT, 2=EULER, 3=QUAT+LIN-->
<param name="IMU_mode" value="1" />
<!-- Set the sensor type of each port 0=EVO_600HZ, 1=EVO_60M-->
<!-- Set the sensor type of each port 0=EVO_600HZ, 1=EVO_60M, 2=EVO_3M, 3=EVO_MINI, 4=EVO_40M, 5=EVO_15M-->
<param name="Sensor_type_port_0" value="1" />
<param name="Sensor_type_port_1" value="1" />
<param name="Sensor_type_port_2" value="1" />
Expand Down
87 changes: 87 additions & 0 deletions src/teraranger_evo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[0].max_range = EVO_MINI_MAX;
range_array_msg.ranges[0].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_0 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[0].max_range = EVO_40M_MAX;
range_array_msg.ranges[0].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_0 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[0].max_range = EVO_15M_MAX;
range_array_msg.ranges[0].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 1
if(config.Sensor_type_port_1 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -334,6 +345,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[1].max_range = EVO_MINI_MAX;
range_array_msg.ranges[1].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_1 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[1].max_range = EVO_40M_MAX;
range_array_msg.ranges[1].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_1 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[1].max_range = EVO_15M_MAX;
range_array_msg.ranges[1].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 2
if(config.Sensor_type_port_2 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -355,6 +377,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[2].max_range = EVO_MINI_MAX;
range_array_msg.ranges[2].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_2 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[2].max_range = EVO_40M_MAX;
range_array_msg.ranges[2].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_2 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[2].max_range = EVO_15M_MAX;
range_array_msg.ranges[2].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 3
if(config.Sensor_type_port_3 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -376,6 +409,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[3].max_range = EVO_MINI_MAX;
range_array_msg.ranges[3].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_3 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[3].max_range = EVO_40M_MAX;
range_array_msg.ranges[3].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_3 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[3].max_range = EVO_15M_MAX;
range_array_msg.ranges[3].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 4
if(config.Sensor_type_port_4 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -397,6 +441,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[4].max_range = EVO_MINI_MAX;
range_array_msg.ranges[4].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_4 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[4].max_range = EVO_40M_MAX;
range_array_msg.ranges[4].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_4 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[4].max_range = EVO_15M_MAX;
range_array_msg.ranges[4].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 5
if(config.Sensor_type_port_5 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -418,6 +473,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[5].max_range = EVO_MINI_MAX;
range_array_msg.ranges[5].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_5 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[5].max_range = EVO_40M_MAX;
range_array_msg.ranges[5].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_5 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[5].max_range = EVO_15M_MAX;
range_array_msg.ranges[5].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 6
if(config.Sensor_type_port_6 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -439,6 +505,17 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[6].max_range = EVO_MINI_MAX;
range_array_msg.ranges[6].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_6 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[6].max_range = EVO_40M_MAX;
range_array_msg.ranges[6].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_6 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[6].max_range = EVO_15M_MAX;
range_array_msg.ranges[6].min_range = EVO_60M_MIN;
}

// Setting type for sensor on port 7
if(config.Sensor_type_port_7 == teraranger_evo_cfg::TerarangerHubEvo_EVO_600HZ)
{
Expand All @@ -460,6 +537,16 @@ void TerarangerHubEvo::reconfigure_sensor_type(
range_array_msg.ranges[7].max_range = EVO_MINI_MAX;
range_array_msg.ranges[7].min_range = EVO_MINI_MIN;
}
else if(config.Sensor_type_port_7 == teraranger_evo_cfg::TerarangerHubEvo_EVO_40M)
{
range_array_msg.ranges[7].max_range = EVO_40M_MAX;
range_array_msg.ranges[7].min_range = EVO_60M_MIN;
}
else if(config.Sensor_type_port_7 == teraranger_evo_cfg::TerarangerHubEvo_EVO_15M)
{
range_array_msg.ranges[7].max_range = EVO_15M_MAX;
range_array_msg.ranges[7].min_range = EVO_60M_MIN;
}

else ROS_ERROR("Invalid reconfigure option");
}
Expand Down

0 comments on commit bfe7333

Please sign in to comment.