Program Listing for File README.md

Return to documentation for file (README.md)

# whill_driver

## About
The "whill_driver" is a ROS2 package for WHILL Model CR2 controller.

<img width=22% title="WHILL Model CR2" src="https://github.com/WHILL/Model_CR_Technical_Support/assets/129816934/387a8aac-3808-4727-895d-9857059ee342">
<img width=24% title="Wheeled Robot Base" src="https://github.com/WHILL/Model_CR_Technical_Support/assets/129816934/6a63ed45-9e0c-40ca-b71c-8dff614af141">


## Package Structure

```mermaid
classDiagram

namespace whill_driver {
    class WhillNode{
        -publiser
        -subscriber
        -server
    }
    class Whill{
        +SendCommand()
        +ReceiveDataset()
    }
    class Parser{
        +Parse()
        +Checksum()
    }
    class SerialPort{
        +Open()
        +Close()
        +Send()
        +Receive()
    }
}

namespace rclcpp {
    class Node{
    }
    class Publisher{
    }
    class Subscription{
    }
    class Service{
    }
}

namespace whill_msgs {
    class WhillModelCMsg{
    }
    class SpeedProfileMsg{
    }
    class SetPowerSrv{
    }
    class SetSpeedProfileSrv{
    }
}

namespace c {
    class unistd{
        +open()
        +close()
        +write()
        +read()
    }
}

WhillNode --|> Node
WhillNode -- Publisher
WhillNode -- Subscription
WhillNode -- Service
WhillNode "1" *-- "1" Whill
Whill "1" *-- "1" Parser
Whill "1" *-- "1" SerialPort
SerialPort -- unistd
Whill -- WhillModelCMsg
Whill -- SpeedProfileMsg
Whill -- SetPowerSrv
Whill -- SetSpeedProfileSrv
```


| Class name | Explanation |
|:---|:---|
| WhillNode | This class provides ROS2 Node, and has responsible for RCLCPP abstraction. |
| Whill | This class has WHILL Model CR2 domain. So, this class can understand control commands and WHILL state datasets. |
| Parser | This class has the ability to parse packets from WHILL. |
| SerialPort | This class provides serial port driver, and has responsible for hardware abstraction. |

**Note:** [whill_msgs](https://github.com/WHILL/ros2_whill_interfaces) is not provided by this repository.

## License

Copyright (c) 2024 WHILL, Inc.

Released under the [MIT license](https://opensource.org/licenses/mit-license.php)