add parameter and launch for lidar reader

This commit is contained in:
Sem van der Hoeven
2023-04-24 12:29:53 +02:00
parent 8fd8662e0d
commit 1fc71c7ca7
4 changed files with 33 additions and 4 deletions

View File

@@ -0,0 +1,23 @@
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package="object_detection",
executable="multiflex_reader",
name="multiflex_reader",
parameters=[
{"multiflex_serial_port": "/dev/ttyACM0"}
]
),
Node(
package="object_detection",
executable="lidar_reader",
name="lidar_reader",
parameters=[
{"lidar_serial_port": "/dev/ttyUSB0"} # TODO test
]
)
])

View File

@@ -8,7 +8,7 @@ def generate_launch_description():
executable="multiflex_reader",
name="multiflex_reader",
parameters=[
{"serial_port": "/dev/ttyACM0"}
{"multiflex_serial_port": "/dev/ttyACM0"}
]
)

View File

@@ -51,13 +51,19 @@ public:
LidarReader()
: Node("lidar_reader")
{
rcl_interfaces::msg::ParameterDescriptor descriptor = rcl_interfaces::msg::ParameterDescriptor{};
descriptor.description = "serial port for the USB port of the LIDAR";
this->declare_parameter("lidar_serial_port", "/dev/ttyACM0", descriptor);
publisher_ = this->create_publisher<object_detection::msg::LidarReading>("drone/object_detection", 10);
timer_ = this->create_wall_timer(500ms, std::bind(&LidarReader::read_lidar_data, this));
ITerarangerTowerEvo::ImuMode mode(ITerarangerTowerEvo::QuaternionLinearAcc);
factory = terabee::ITerarangerFactory::getFactory();
tower = factory->createTerarangerTowerEvo("/dev/ttyACM0");
tower = factory->createTerarangerTowerEvo(this->get_parameter("lidar_serial_port"));
if (!tower)
{

View File

@@ -23,10 +23,10 @@ public:
{
rcl_interfaces::msg::ParameterDescriptor serial_port_descriptor = rcl_interfaces::msg::ParameterDescriptor{};
serial_port_descriptor.description = "Serial port of the USB port that the multiflex PCB is connected to.";
this->declare_parameter("serial_port", "/dev/ttyACM0", serial_port_descriptor);
this->declare_parameter("multiflex_serial_port", "/dev/ttyACM0", serial_port_descriptor);
factory = terabee::ITerarangerFactory::getFactory();
multiflex = factory->createTerarangerMultiflex(this->get_parameter("serial_port").as_string());
multiflex = factory->createTerarangerMultiflex(this->get_parameter("multiflex_serial_port").as_string());
if (!multiflex)
{