{"id":29049336,"url":"https://github.com/astuff/pacmod3","last_synced_at":"2025-06-26T19:08:34.660Z","repository":{"id":30415317,"uuid":"114818326","full_name":"astuff/pacmod3","owner":"astuff","description":"PACMod Board Rev 3 Driver","archived":false,"fork":false,"pushed_at":"2023-06-29T19:09:09.000Z","size":773,"stargazers_count":24,"open_issues_count":11,"forks_count":14,"subscribers_count":7,"default_branch":"ros1_master","last_synced_at":"2024-06-20T15:48:07.306Z","etag":null,"topics":["drive-by-wire","driver","pacmod","ros","ros-interface","ros2","vehicle-control"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astuff.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-12-19T22:43:26.000Z","updated_at":"2024-05-31T14:37:05.000Z","dependencies_parsed_at":"2024-01-06T01:03:46.688Z","dependency_job_id":"c3f79f6e-fafb-4095-a455-e47fd8e23a43","html_url":"https://github.com/astuff/pacmod3","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/astuff/pacmod3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astuff%2Fpacmod3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astuff%2Fpacmod3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astuff%2Fpacmod3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astuff%2Fpacmod3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astuff","download_url":"https://codeload.github.com/astuff/pacmod3/tar.gz/refs/heads/ros1_master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astuff%2Fpacmod3/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262128872,"owners_count":23263350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drive-by-wire","driver","pacmod","ros","ros-interface","ros2","vehicle-control"],"created_at":"2025-06-26T19:08:27.957Z","updated_at":"2025-06-26T19:08:34.649Z","avatar_url":"https://github.com/astuff.png","language":"C++","funding_links":[],"categories":["Network and Middleware"],"sub_categories":["Sensor and Acuator Interfaces"],"readme":"# PACMod3 (Platform Actuation and Control MODule) ROS Driver #\n\n[![CircleCI](https://circleci.com/gh/astuff/pacmod3/tree/ros1_master.svg?style=svg)](https://circleci.com/gh/astuff/pacmod3/tree/ros1_master)\n\nThis ROS node is designed to allow the user to control a vehicle (see SUPPORTED VEHICLES below) with the PACMod drive-by-wire system, board revision 3.\nThe main purpose of the driver is to provide a common ROS API to PACMod devices regardless of vehicle type or specific PACMod version in use.\n\nFor access to the DBC file which defines the CAN interface for the PACMod, see the [pacmod_dbc](https://github.com/astuff/pacmod_dbc) repo.\n\n## Installation \n\nInstall pacmod3 using our debian repository:\n\n```sh\nsudo apt install apt-transport-https\nsudo sh -c 'echo \"deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/autonomoustuff-public.list'\nsudo apt update\nsudo apt install ros-$ROS_DISTRO-pacmod3\n```\n\nNote: Previously the pacmod3 driver was released via the ROS buildfarm. \nThis has changed as of Ubuntu 20.04 (ROS2 Foxy and ROS1 Noetic) to keep old package versions available for download, which gives users greater control over their installed software and also allows downgrades if an upgrade breaks software dependencies.\n\n## ROS API\n\nThe driver will automatically adapt the ROS API (published and subscribed topics) according to what data the PACMod system supports. \nPlease consult the PACMod user manual you received with your vehicle in order to determine what types of data the PACMod system is able to send and receive.\n\n### Launch Arguments\n\n- **dbc_major_version**: This should be set to match the DBC version of your PACMod system. See the \"Supported Vehicles\" section at the bottom of this README for more details.\n- **use_kvaser**: Set this to true if a Kvaser CAN device is being used with Kvaser canlib drivers to connect to the PACMod. Defaults to `false`.\n- **kvaser_hardware_id**: The hardware id of the kvaser device, only applies if `use_kvaser` is true.\n- **kvaser_circuit_id**: The circuit/channel id that the PACMod is plugged into on the kvaser device, only applies if `use_kvaser` is true.\n- **use_socketcan**: Set this to true if Linux SocketCAN drivers are being used to connect to the PACMod. Defaults to `false`.\n- **socketcan_device**: The device id of the SocketCAN channel the PACMod is plugged into, only applies if `use_socketcan` is true.\n- **namespace**: The namespace of the PACMod driver, topics will be namespaced accordingly. Defaults to `pacmod`.\n\n### Published Topics\n\nTopics published on all platforms:\n\n- `accel_rpt` ([pacmod3_msgs/SystemRptFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptFloat.msg))\n- `accel_aux_rpt` ([pacmod3_msgs/AccelAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/AccelAuxRpt.msg))\n- `brake_rpt` ([pacmod3_msgs/SystemRptFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptFloat.msg))\n- `brake_aux_rpt` ([pacmod3_msgs/BrakeAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/BrakeAuxRpt.msg))\n- `steering_rpt` ([pacmod3_msgs/SystemRptFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptFloat.msg))\n- `steering_aux_rpt` ([pacmod3_msgs/SteeringAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SteeringAuxRpt.msg))\n- `shift_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `shift_aux_rpt` ([pacmod3_msgs/ShiftAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/ShiftAuxRpt.msg))\n- `turn_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `turn_aux_rpt` ([pacmod3_msgs/TurnAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/TurnAuxRpt.msg))\n- `vehicle_speed_rpt` ([pacmod3_msgs/VehicleSpeedRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/VehicleSpeedRpt.msg))\n- `vin_rpt` ([pacmod3_msgs/VinRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/VinRpt.msg))\n- `global_rpt` ([pacmod3_msgs/GlobalRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/GlobalRpt.msg))\n- `component_rpt_00` ([pacmod3_msgs/ComponentRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/ComponentRpt.msg))\n- `component_rpt_01` ([pacmod3_msgs/ComponentRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/ComponentRpt.msg))\n- `component_rpt_02` ([pacmod3_msgs/ComponentRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/ComponentRpt.msg))\n- `all_system_statuses` ([pacmod3_msgs/AllSystemStatuses](https://github.com/astuff/pacmod3_msgs/blob/master/msg/AllSystemStatuses.msg))\n- `can_rx` ([can_msgs/Frame](http://docs.ros.org/en/noetic/api/can_msgs/html/msg/Frame.html))\n\nTopics published on supported platforms only:\n\n- `brake_motor_rpt_1` ([pacmod3_msgs/MotorRpt1](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt1.msg))\n- `brake_motor_rpt_2` ([pacmod3_msgs/MotorRpt2](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt2.msg))\n- `brake_motor_rpt_3` ([pacmod3_msgs/MotorRpt3](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt3.msg))\n- `cruise_control_buttons_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `date_time_rpt` ([pacmod3_msgs/DateTimeRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/DateTimeRpt.msg))\n- `detected_object_rpt` ([pacmod3_msgs/DetectedObjectRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/DetectedObjectRpt.msg))\n- `door_rpt` ([pacmod3_msgs/DoorRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/DoorRpt.msg))\n- `estop_rpt` ([pacmod3_msgs/EStopRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/EStopRpt.msg))\n- `global_rpt_2` ([pacmod3_msgs/GlobalRpt2](https://github.com/astuff/pacmod3_msgs/blob/master/msg/GlobalRpt2.msg))\n- `engine_brake_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `hazard_lights_rpt` ([pacmod3_msgs/SystemRptBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptBool.msg))\n- `headlight_aux_rpt` ([pacmod3_msgs/HeadlightAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/HeadlightAuxRpt.msg))\n- `headlight_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `horn_rpt` ([pacmod3_msgs/SystemRptBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptBool.msg))\n- `interior_lights_rpt` ([pacmod3_msgs/InteriorLightsRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/InteriorLightsRpt.msg))\n- `lat_lon_heading_rpt` ([pacmod3_msgs/LatLonHeadingRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/LatLonHeadingRpt.msg))\n- `marker_lamp_rpt` ([pacmod3_msgs/SystemRptBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptBool.msg))\n- `occupancy_rpt` ([pacmod3_msgs/OccupancyRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/OccupancyRpt.msg))\n- `parking_brake_rpt` ([pacmod3_msgs/SystemRptBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptBool.msg))\n- `rear_lights_rpt` ([pacmod3_msgs/RearLightsRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/RearLightsRpt.msg))\n- `sprayer_rpt` ([pacmod3_msgs/SystemRptBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptBool.msg))\n- `steering_motor_rpt_1` ([pacmod3_msgs/MotorRpt1](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt1.msg))\n- `steering_motor_rpt_2` ([pacmod3_msgs/MotorRpt2](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt2.msg))\n- `steering_motor_rpt_3` ([pacmod3_msgs/MotorRpt3](https://github.com/astuff/pacmod3_msgs/blob/master/msg/MotorRpt3.msg))\n- `vehicle_dynamics_rpt` ([pacmod3_msgs/VehicleDynamicsRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/VehicleDynamicsRpt.msg))\n- `wheel_speed_rpt` ([pacmod3_msgs/WheelSpeedRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/WheelSpeedRpt.msg))\n- `wiper_aux_rpt` ([pacmod3_msgs/WiperAuxRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/WiperAuxRpt.msg))\n- `wiper_rpt` ([pacmod3_msgs/SystemRptInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemRptInt.msg))\n- `yaw_rate_rpt` ([pacmod3_msgs/YawRateRpt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/YawRateRpt.msg))\n\n### Subscribed Topics\n\nTopics subscribed on all platforms:\n\n- `accel_cmd` ([pacmod3_msgs/SystemCmdFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdFloat.msg))\n- `brake_cmd` ([pacmod3_msgs/SystemCmdFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdFloat.msg))\n- `steering_cmd` ([pacmod3_msgs/SystemCmdFloat](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdFloat.msg))\n- `shift_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `turn_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `can_tx` ([can_msgs/Frame](http://docs.ros.org/en/noetic/api/can_msgs/html/msg/Frame.html))\n\nTopics subscribed on supported platforms only:\n\n- `cruise_control_buttons_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `engine_brake_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `hazard_lights_cmd` ([pacmod3_msgs/SystemCmdBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdBool.msg))\n- `headlight_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `horn_cmd` ([pacmod3_msgs/SystemCmdBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdBool.msg))\n- `marker_lamp_cmd` ([pacmod3_msgs/SystemCmdBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdBool.msg))\n- `rear_pass_door_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n- `sprayer_cmd` ([pacmod3_msgs/SystemCmdBool](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdBool.msg))\n- `wiper_cmd` ([pacmod3_msgs/SystemCmdInt](https://github.com/astuff/pacmod3_msgs/blob/master/msg/SystemCmdInt.msg))\n\n## Supported Vehicles ##\n\nAt the moment, this pacmod3 driver supports DBC versions 3 through 12 for a core set of common messages.\nThis means not all vehicle-specific CAN messages are currently supported.\nIf you need a specific CAN message to be supported please open an issue [here](https://github.com/astuff/pacmod3/issues).\n\nIf you are unsure about which DBC version your existing PACMod supports, please reach out to our support team: https://autonomoustuff.com/support\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastuff%2Fpacmod3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastuff%2Fpacmod3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastuff%2Fpacmod3/lists"}