Skip to content

Instantly share code, notes, and snippets.

View wjwwood's full-sized avatar
🙃

William Woodall wjwwood

🙃
View GitHub Profile
@wjwwood
wjwwood / my_node.cpp
Last active February 14, 2021 13:44
Example C++ Subscription, use `c++ -I/opt/ros/hydro/include -L/opt/ros/hydro/lib -lroscpp -lroscpp_serialization -lrosconsole my_node.cpp -o my_node`
#include <vector>
#include "ros/ros.h"
#include "geometry_msgs/PoseStamped.h"
std::vector<geometry_msgs::PoseStamped::ConstPtr> poses;
void handle_poses(const geometry_msgs::PoseStamped::ConstPtr& msg)
{
ROS_INFO_STREAM("Received pose: " << msg);
@wjwwood
wjwwood / CMakeLists.txt
Created August 31, 2018 21:47
example package that causes cmake errors when changing rosidl generation target name
cmake_minimum_required(VERSION 3.5)
project(test_pkg)
find_package(ament_cmake REQUIRED)
find_package(rosidl_default_generators REQUIRED)
rosidl_generate_interfaces(${PROJECT_NAME}_ext_to_avoid_target_collision "msg/MyMsg.msg")
ament_package()
@wjwwood
wjwwood / rosbag_storage_policy_design.cpp
Created August 10, 2018 20:09
example of policy based design for rosbag storage interface
#include <string>
#include <vector>
struct SerializedMessage
{
// ...
};
class RosbagIOStorageInterface
{
@wjwwood
wjwwood / catkin_create_sublime_project.py
Created March 29, 2013 22:01
This script creates a Sublime Text 2 project file when run on a catkin workspace.
#!/usr/bin/env python
from __future__ import print_function
import argparse
import json
import os
import sys
from catkin_pkg.packages import find_packages
diff --git a/demo_nodes_cpp/src/topics/listener.cpp b/demo_nodes_cpp/src/topics/listener.cpp
index 454f896..aa81a66 100644
--- a/demo_nodes_cpp/src/topics/listener.cpp
+++ b/demo_nodes_cpp/src/topics/listener.cpp
@@ -14,6 +14,7 @@
#include <iostream>
#include <memory>
+#include <vector>
#include <chrono>
using std::chrono_literals::operator ""h;
constexpr double operator "" _ping(unsigned long long ping)
{
return double(ping);
}
constexpr double operator "" pong(unsigned long long pong)
#include <string>
#include <vector>
struct NodeBaseIface {
virtual std::string get_name() = 0;
};
struct NodeBase : public NodeBaseIface {
explicit NodeBase(std::string name) : name_(name) {}
virtual std::string get_name() {return name_;}
repositories:
ament/ament_cmake:
type: git
url: https://github.com/ament/ament_cmake.git
version: master
ament/ament_index:
type: git
url: https://github.com/ament/ament_index.git
version: master
ament/ament_lint:
repositories:
ament/ament_cmake:
type: git
url: https://github.com/ament/ament_cmake.git
version: 6b3f5b7155712b0b3208250f30d73b45f5b079ec
ament/ament_index:
type: git
url: https://github.com/ament/ament_index.git
version: d4a45a6e03d44883cc12e4ded80e9252e8706557
ament/ament_lint:
#include <iostream>
#include "rclcpp/rclcpp.hpp"
#include <memory>
using rclcpp::parameter_client::AsyncParametersClient;
rclcpp::node::Node::SharedPtr node;
void spin()
{