diff --git a/ros2_driver/src/ti_mmwave_rospkg/bin/xwr64xxAOP_mmw_demo.bin b/ros2_driver/src/ti_mmwave_rospkg/bin/xwr64xxAOP_(6843AOP)_mmw_demo.bin similarity index 100% rename from ros2_driver/src/ti_mmwave_rospkg/bin/xwr64xxAOP_mmw_demo.bin rename to ros2_driver/src/ti_mmwave_rospkg/bin/xwr64xxAOP_(6843AOP)_mmw_demo.bin diff --git a/ros2_driver/src/ti_mmwave_rospkg/bin/xwrl6432_mmw_demo.appimage b/ros2_driver/src/ti_mmwave_rospkg/bin/xwrl6432_mmw_demo.appimage index 500a128..7c3b606 100644 Binary files a/ros2_driver/src/ti_mmwave_rospkg/bin/xwrl6432_mmw_demo.appimage and b/ros2_driver/src/ti_mmwave_rospkg/bin/xwrl6432_mmw_demo.appimage differ diff --git a/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Compressed.cfg b/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Compressed.cfg deleted file mode 100644 index bb32ae6..0000000 --- a/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Compressed.cfg +++ /dev/null @@ -1,29 +0,0 @@ -% *************************************************************** -% PresenceDetect: Chirp configuration and Processing chain are -% optimized to detect any kind of motion, including fine movements -% (even small movements that are present while sitting still, -% such as, movement caused by typing, breathing, etc.). However, -% there is no velocity measurement reported in this case. -% It is typically useful for applications such as identifying -% presence or absence of occupants in an indoor setting. -% Localization (Angle estimation) of the object is possible. -% *************************************************************** -channelCfg 7 3 0 -chirpComnCfg 18 0 0 128 4 30 0 -chirpTimingCfg 6 28 0 90 59.75 -frameCfg 8 0 250 1 150 0 -guiMonitor 2 0 0 0 0 0 0 0 0 0 0 -sigProcChainCfg 64 8 2 0 4 4 0 .5 -cfarCfg 2 4 3 2 0 14.0 0 0.5 0 1 1 1 -aoaFovCfg -60 60 -40 40 -rangeSelCfg 0.1 4.0 -clutterRemoval 1 -compRangeBiasAndRxChanPhase 0.0 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 -adcDataSource 0 adc_data_0001_CtestAdc6Ant.bin -adcLogging 0 -lowPowerCfg 0 -factoryCalibCfg 1 0 40 0 0x1ff000 -sensorPosition 0 0 1.44 0 0 -minorStateCfg 5 4 40 8 4 30 8 8 -clusterCfg 1 0.5 2 -sensorStart 0 0 0 0 diff --git a/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Uncompressed.cfg b/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Uncompressed.cfg index 4f44bc4..b883965 100644 --- a/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Uncompressed.cfg +++ b/ros2_driver/src/ti_mmwave_rospkg/cfg/6432_Standard_Uncompressed.cfg @@ -8,22 +8,28 @@ % presence or absence of occupants in an indoor setting. % Localization (Angle estimation) of the object is possible. % *************************************************************** +sensorStop 0 channelCfg 7 3 0 -chirpComnCfg 18 0 0 128 4 30 0 -chirpTimingCfg 6 28 0 90 59.75 -frameCfg 8 0 250 1 100 0 +chirpComnCfg 8 0 0 256 4 28 0 +chirpTimingCfg 6 63 0 75 60 +frameCfg 2 0 250 32 150 0 guiMonitor 1 0 0 0 0 0 0 0 0 0 0 -sigProcChainCfg 64 8 2 0 4 4 0 .5 -cfarCfg 2 4 3 2 0 15.0 0 0.5 0 1 1 1 +sigProcChainCfg 16 16 1 1 4 4 0 15 +cfarCfg 2 8 4 3 0 10.0 0 0.5 0 1 1 1 aoaFovCfg -60 60 -40 40 -rangeSelCfg 0.05 4.0 +rangeSelCfg 0.1 12.0 clutterRemoval 1 compRangeBiasAndRxChanPhase 0.0 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 -adcDataSource 0 adc_data_0001_CtestAdc6Ant.bin +adcDataSource 0 C:/ti/mmwave_lp_sdk/examples/datapath/common/testBench/major_motion/adc_data_0001_CtestAdc6Ant.bin adcLogging 0 -lowPowerCfg 0 -factoryCalibCfg 1 0 40 5 0x1ff000 +lowPowerCfg 1 +factoryCalibCfg 1 0 40 0 0x1ff000 +mpdBoundaryBox 1 0 1.48 0 1.95 0 3 +mpdBoundaryBox 2 0 1.48 1.95 3.9 0 3 +mpdBoundaryBox 3 -1.48 0 0 1.95 0 3 +mpdBoundaryBox 4 -1.48 0 1.95 3.9 0 3 sensorPosition 0 0 1.44 0 0 minorStateCfg 5 4 40 8 4 30 8 8 +majorStateCfg 4 2 30 10 8 80 4 4 clusterCfg 1 0.5 2 sensorStart 0 0 0 0 diff --git a/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Standard.py b/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Standard.py index 0586bdd..71fd1fc 100644 --- a/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Standard.py +++ b/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Standard.py @@ -90,7 +90,10 @@ def generate_launch_description(): {"mmwavecli_name": name}, {"mmwavecli_cfg": path}, {"data_port": data_port}, - {"data_rate": data_rate} + {"data_rate": data_rate}, + {"frame_id": "ti_mmwave_0"}, + {"max_allowed_elevation_angle_deg": 90}, + {"max_allowed_azimuth_angle_deg": 90} ] ), Node( diff --git a/ros2_driver/src/ti_mmwave_rospkg/src/DataHandlerClass.cpp b/ros2_driver/src/ti_mmwave_rospkg/src/DataHandlerClass.cpp index 24cede6..ae157a1 100644 --- a/ros2_driver/src/ti_mmwave_rospkg/src/DataHandlerClass.cpp +++ b/ros2_driver/src/ti_mmwave_rospkg/src/DataHandlerClass.cpp @@ -406,14 +406,18 @@ void *DataUARTHandler::sortIncomingData(void) //get number of objects memcpy( &mmwData.numObjOut, ¤tBufp->at(currentDatap), sizeof(mmwData.numObjOut)); currentDatap += ( sizeof(mmwData.numObjOut) ); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.numObjOut = %i", mmwData.numObjOut); + //get xyzQFormat memcpy( &mmwData.xyzQFormat, ¤tBufp->at(currentDatap), sizeof(mmwData.xyzQFormat)); currentDatap += ( sizeof(mmwData.xyzQFormat) ); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.xyzQFormat = %d", mmwData.xyzQFormat); } else // SDK version is at least 3.x { mmwData.numObjOut = mmwData.header.numDetectedObj; + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.numObjOut = %i", mmwData.numObjOut); } RScan->header.frame_id = frameID; @@ -517,6 +521,11 @@ void *DataUARTHandler::sortIncomingData(void) memcpy( &mmwData.newObjOut.velocity, ¤tBufp->at(currentDatap), sizeof(mmwData.newObjOut.velocity)); currentDatap += ( sizeof(mmwData.newObjOut.velocity) ); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.objOut.x = %f", mmwData.newObjOut.x); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.objOut.y = %f", mmwData.newObjOut.y); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.objOut.z = %f", mmwData.newObjOut.z); + //RCLCPP_INFO(rclcpp::get_logger("rclcpp"),"mmwData.objOut.velocity = %f", mmwData.newObjOut.velocity); + // Map mmWave sensor coordinates to ROS coordinate system RScan->points[i].x = mmwData.newObjOut.y; // ROS standard coordinate system X-axis is forward which is the mmWave sensor Y-axis RScan->points[i].y = -mmwData.newObjOut.x; // ROS standard coordinate system Y-axis is left which is the mmWave sensor -(X-axis)