Creating ros package with catkin and adding custom messages:
############################################################
1. Create a workspace:
----------------------
$ mkdir catkin_ws
$ cd catkin_ws
$ mkdir src
$ catkin_make
$ source devel/setup.bash

2. Create the package:
----------------------
$ cd catkin_ws/src
$ catkin_create_pkg <package_name> std_msgs rospy roscpp
$ cd ..
$ catkin_make # this build the package

3. Create the custom messages:
------------------------------
$ cd catkin_ws/src/<package_name>
$ mkdir msg
$ cd msg
$ echo "int64 num" > Num.msg
Then edit the package.xml file and add the following:
  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

Also edit CMakeLists.txt and to the find_package() function add:
 message_generation
and to the catkin_package() add:
 CATKIN_DEPENDS message_runtime

Then, find add_message_files() (uncomment if necessary) and change it to the following:
add_message_files(
  FILES
  Num.msg
)

Finally, uncomment the generate_messages() function such that it reads:
 generate_messages(
   DEPENDENCIES
   std_msgs
 )

To build the new messages do the following:
$ cd catkin_ws
$ catkin_make # builds the new messages
$ catkin_make install

As the last step, source the setup.bash:
$ . install/setup.bash

Now the new messages should be available and you can find them with
$ rosmsg list

Don't forget to source the setup.bash everytime you want to use the messages!
